十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
.NET Framework 4
·Visual Studio 2008
所有版本的 SQL Server 均使用基于角色的安全,它允許您為角色、用戶組而不是各個(gè)用戶分配權(quán)限。固定服務(wù)器和固定數(shù)據(jù)庫角色具有分配給它們的一組固定的權(quán)限。
固定服務(wù)器角色
固定服務(wù)器角色具有一組固定的權(quán)限,并且適用于整個(gè)服務(wù)器范圍。它們專門用于管理 SQL Server,且不能更改分配給它們的權(quán)限??梢栽跀?shù)據(jù)庫中不存在用戶帳戶的情況下向固定服務(wù)器角色分配登錄。
安全說明
sysadmin 固定服務(wù)器角色包含所有其他角色并且具有無限范圍。請(qǐng)不要將這些主體添加到此角色,除非它們是高度信任的。sysadmin 角色成員對(duì)所有服務(wù)器數(shù)據(jù)庫和資源有不可撤消的管理特權(quán)。
將用戶添加到固定服務(wù)器角色時(shí),請(qǐng)仔細(xì)選擇。例如,bulkadmin 角色允許用戶將任意本地文件的內(nèi)容插入表中,這樣可能會(huì)損壞數(shù)據(jù)的完整性。有關(guān)固定服務(wù)器角色和權(quán)限的完整列表,請(qǐng)參見 SQL Server 2005 聯(lián)機(jī)叢書。SQL Server 2000 的固定服務(wù)器角色具有與 SQL Server 2000 相同的名稱和權(quán)限集。
固定數(shù)據(jù)庫角色
固定數(shù)據(jù)庫角色具有一組預(yù)定義的權(quán)限,這些權(quán)限旨在允許您輕松管理權(quán)限組。db_owner 角色的成員可對(duì)數(shù)據(jù)庫執(zhí)行所有配置和維護(hù)活動(dòng)。
有關(guān) SQL Server 預(yù)定義角色的更多信息,請(qǐng)參閱以下資源。
資源
說明
Server-Level Roles(服務(wù)器層角色)和 Permissions of Fixed Server Roles(固定服務(wù)器角色的權(quán)限)
描述 SQL Server 2005 中的固定服務(wù)器角色以及與其關(guān)聯(lián)的權(quán)限。
Database-Level Roles(數(shù)據(jù)庫層角色)和 Permissions of Fixed Database Roles(固定數(shù)據(jù)庫角色的權(quán)限)
描述固定數(shù)據(jù)庫角色及與其關(guān)聯(lián)的權(quán)限
Adding a Member to a Predefined Role(向預(yù)定義角色添加成員)
描述與固定服務(wù)器和固定數(shù)據(jù)庫角色關(guān)聯(lián)的權(quán)限,并演示如何向這些角色中添加成員。
數(shù)據(jù)庫角色和用戶
要使用數(shù)據(jù)庫對(duì)象,必須將登錄映射到數(shù)據(jù)庫用戶帳戶。這樣就可以將數(shù)據(jù)庫用戶添加到數(shù)據(jù)庫角色,從而繼承與這些角色關(guān)聯(lián)的任何權(quán)限集。從 SQL Server 2005 開始,可以授予所有權(quán)限。
當(dāng)為應(yīng)用程序設(shè)計(jì)安全性時(shí),還必須考慮 public 角色、dbo 用戶帳戶和 guest 帳戶。
公共角色
public 角色包含在每個(gè)數(shù)據(jù)庫中,包括系統(tǒng)數(shù)據(jù)庫。無法刪除該角色,也無法向其中添加用戶或從中刪除用戶。授予 public 角色的權(quán)限由所有其他用戶和角色繼承,因?yàn)槟J(rèn)情況下,它們屬于 public 角色。僅為 public 角色授予您希望所有用戶都具有的權(quán)限。
dbo 用戶帳戶
dbo 或數(shù)據(jù)庫所有者是具有在數(shù)據(jù)庫中執(zhí)行所有活動(dòng)的默示權(quán)限的用戶帳戶。sysadmin 固定服務(wù)器角色的成員會(huì)自動(dòng)映射到 dbo。
注意
以 SQL Server 2005 開始,dbo 也是架構(gòu)名稱,如 SQL Server 中的所有權(quán)和用戶架構(gòu)分離 (ADO.NET) 中所述。
dbo 用戶帳戶經(jīng)常與 db_owner 固定數(shù)據(jù)庫角色相混淆。db_owner 的作用域是一個(gè)數(shù)據(jù)庫;sysadmin 的作用域是整個(gè)服務(wù)器。db_owner 角色中的成員無法授予 dbo 用戶特權(quán)。
guest 用戶帳戶
用戶經(jīng)過身份驗(yàn)證并允許登錄 SQL Server 的實(shí)例后,用戶需要訪問的每個(gè)數(shù)據(jù)庫中必須存在一個(gè)單獨(dú)的用戶帳戶。要求每個(gè)數(shù)據(jù)庫中具有用戶帳戶會(huì)阻止用戶連接到 SQL Server 的實(shí)例,并且會(huì)阻止用戶訪問服務(wù)器上的所有數(shù)據(jù)庫。通過允許沒有數(shù)據(jù)庫用戶帳戶的登錄訪問數(shù)據(jù)庫,可在數(shù)據(jù)庫中包含 guest 用戶帳戶時(shí)避開此要求。
在所有版本的 SQL Server 中,guest 帳戶均為內(nèi)置帳戶。默認(rèn)情況下,它在新的數(shù)據(jù)庫中是禁用的。如果啟用此帳戶,則可以通過撤消其 CONNECT 權(quán)限(方法是執(zhí)行 Transact-SQL REVOKE CONNECT FROM GUEST 語句)來禁用此帳戶。在 SQL Server 2000 中,可以通過執(zhí)行 Transact-SQL sp_dropuser 或 sp_revokedbaccess 系統(tǒng)存儲(chǔ)過程來禁用此帳戶。
安全說明
避免使用 guest 帳戶;沒有其自己的數(shù)據(jù)庫權(quán)限的所有登錄都會(huì)獲取授予此帳戶的數(shù)據(jù)庫權(quán)限。如果必須使用 guest 帳戶,請(qǐng)為其授予最小權(quán)限。
有關(guān) SQL Server 登錄名、用戶和角色的更多信息,請(qǐng)參閱以下資源。
資源
說明
Identity and Access Control(標(biāo)識(shí)和訪問控制)
包含指向描述主體、角色、憑據(jù)、安全對(duì)象和權(quán)限的主題的鏈接。
Principals(主體)
描述主體并包含指向描述服務(wù)器和數(shù)據(jù)庫角色的主題的鏈接。
Creating Security Accounts(創(chuàng)建安全帳戶)和 Managing Security Accounts(管理安全帳戶)