SQL Server角色成員身份和權(quán)限簡(jiǎn)介
為便于管理數(shù)據(jù)庫(kù)中的權(quán)限,SQL Server 提供了若干“角色”,這些角色是用于分組其他主體的安全主體。它們類(lèi)似于 Microsoft Windows 操作系統(tǒng)中的組。數(shù)據(jù)庫(kù)級(jí)角色的權(quán)限作用域?yàn)閿?shù)據(jù)庫(kù)范圍。SQL Server 中有兩種類(lèi)型的數(shù)據(jù)庫(kù)級(jí)角色:數(shù)據(jù)庫(kù)中預(yù)定義的“固定數(shù)據(jù)庫(kù)角色”和您可以創(chuàng)建的“靈活數(shù)據(jù)庫(kù)角色”。
固定數(shù)據(jù)庫(kù)角色是在數(shù)據(jù)庫(kù)級(jí)別定義的,并且存在于每個(gè)數(shù)據(jù)庫(kù)中。db_owner 和 db_securityadmin 數(shù)據(jù)庫(kù)角色的成員可以管理固定數(shù)據(jù)庫(kù)角色成員身份。但是,只有 db_owner 數(shù)據(jù)庫(kù)角色的成員能夠向db_owner 固定數(shù)據(jù)庫(kù)角色中添加成員。msdb 數(shù)據(jù)庫(kù)中還有一些特殊用途的固定數(shù)據(jù)庫(kù)角色。您可以向數(shù)據(jù)庫(kù)級(jí)角色中添加任何數(shù)據(jù)庫(kù)帳戶(hù)和其他SQL Server 角色。固定數(shù)據(jù)庫(kù)角色的每個(gè)成員都可向同一個(gè)角色添加其他登錄名。
數(shù)據(jù)庫(kù)級(jí)別的角色名稱(chēng)及說(shuō)明
db_owner 固定數(shù)據(jù)庫(kù)角色的成員可以執(zhí)行數(shù)據(jù)庫(kù)的所有配置和維護(hù)活動(dòng),還可以刪除數(shù)據(jù)庫(kù)。
db_securityadmin 固定數(shù)據(jù)庫(kù)角色的成員可以修改角色成員身份和管理權(quán)限。向此角色中添加主體可能會(huì)導(dǎo)致意外的權(quán)限升級(jí)。
db_accessadmin 固定數(shù)據(jù)庫(kù)角色的成員可以為 Windows 登錄名、Windows 組和 SQL Server 登錄名添加或刪除數(shù)據(jù)庫(kù)訪問(wèn)權(quán)限。
db_backupoperator 固定數(shù)據(jù)庫(kù)角色的成員可以備份數(shù)據(jù)庫(kù)。
db_ddladmin 固定數(shù)據(jù)庫(kù)角色的成員可以在數(shù)據(jù)庫(kù)中運(yùn)行任何數(shù)據(jù)定義語(yǔ)言 (DDL) 命令。
db_datawriter 固定數(shù)據(jù)庫(kù)角色的成員可以在所有用戶(hù)表中添加、刪除或更改數(shù)據(jù)。
db_datareader 固定數(shù)據(jù)庫(kù)角色的成員可以從所有用戶(hù)表中讀取所有數(shù)據(jù)。
db_denydatawriter 固定數(shù)據(jù)庫(kù)角色的成員不能添加、修改或刪除數(shù)據(jù)庫(kù)內(nèi)用戶(hù)表中的任何數(shù)據(jù)。
db_denydatareader 固定數(shù)據(jù)庫(kù)角色的成員不能讀取數(shù)據(jù)庫(kù)內(nèi)用戶(hù)表中的任何數(shù)據(jù)。
有關(guān)數(shù)據(jù)庫(kù)級(jí)固定角色權(quán)限的特定信息,請(qǐng)參閱固定數(shù)據(jù)庫(kù)角色的權(quán)限(數(shù)據(jù)庫(kù)引擎)。
msdb 角色名稱(chēng)及說(shuō)明
db_ssisadmin
db_ssisoperator
db_ssisltduser
這些數(shù)據(jù)庫(kù)角色的成員可以管理和使用SSIS。從早期版本升級(jí)的 SQL Server 實(shí)例可能包含使用 Da
dc_admin
dc_operator
dc_proxy
這些數(shù)據(jù)庫(kù)角色的成員可以管理和使用數(shù)據(jù)收集器。有關(guān)詳細(xì)信息,請(qǐng)參閱數(shù)據(jù)收集器的安全性。
PolicyAdministratorRole
db_ PolicyAdministratorRole 數(shù)據(jù)庫(kù)角色的成員可以對(duì)基于策略的管理策略和條件執(zhí)行所有配置和維護(hù)活動(dòng)。有關(guān)詳細(xì)信息,請(qǐng)參閱使用基于策略的管理來(lái)管理服務(wù)器。
ServerGroupAdministratorRole
ServerGroupReaderRole
這些數(shù)據(jù)庫(kù)角色的成員可以管理和使用注冊(cè)的服務(wù)器組。有關(guān)詳細(xì)信息,請(qǐng)參閱創(chuàng)建服務(wù)器組。
重要提示:
db_ssisadmin 角色和 dc_admin 角色的成員也許可以將其權(quán)限提升到sysadmin。之所以會(huì)發(fā)生此權(quán)限提升,是因?yàn)檫@些角色可以修改Integration Services 包,而 SQL Server 可以使用SQL Server 代理的sysadmin 安全上下文來(lái)執(zhí)行Integration Services 包。若要防止在運(yùn)行維護(hù)計(jì)劃、數(shù)據(jù)收集組和其他 Integration Services 包時(shí)出現(xiàn)此權(quán)限提升,請(qǐng)將運(yùn)行包的 SQL Server 代理作業(yè)配置為使用擁有有限權(quán)限的代理帳戶(hù),或只將 sysadmin 成員添加到 db_ssisadmin 和dc_admin 角色。
使用服務(wù)器級(jí)角色
sp_helpdbfixedrole (Transact-SQL) → 元數(shù)據(jù) → 返回固定數(shù)據(jù)庫(kù)角色的列表。
sp_dbfixedrolepermission (Transact-SQL) → 元數(shù)據(jù) → 顯示固定數(shù)據(jù)庫(kù)角色的權(quán)限。
sp_helprole (Transact-SQL) → 元數(shù)據(jù) → 返回當(dāng)前數(shù)據(jù)庫(kù)中有關(guān)角色的信息。
sp_helprolemember (Transact-SQL) → 元數(shù)據(jù) → 返回有關(guān)當(dāng)前數(shù)據(jù)庫(kù)中某個(gè)角色的成員的信息。
sys.database_role_members (Transact-SQL) → 元數(shù)據(jù) → 為每個(gè)數(shù)據(jù)庫(kù)角色的每個(gè)成員返回一行。
IS_MEMBER (Transact-SQL) → 元數(shù)據(jù) → 指示當(dāng)前用戶(hù)是否為指定 Microsoft Windows 組或 Microsoft SQL Server 數(shù)據(jù)庫(kù)角色的成員。
CREATE ROLE (Transact-SQL) → 命令 → 在當(dāng)前數(shù)據(jù)庫(kù)中創(chuàng)建新的數(shù)據(jù)庫(kù)角色。
ALTER ROLE (Transact-SQL) → 命令 → 更改數(shù)據(jù)庫(kù)角色的名稱(chēng)。
DROP ROLE (Transact-SQL) → 命令從數(shù)據(jù)庫(kù)中刪除角色。
sp_addrole (Transact-SQL) → 命令 → 在當(dāng)前數(shù)據(jù)庫(kù)中創(chuàng)建新的數(shù)據(jù)庫(kù)角色。
sp_droprole (Transact-SQL) → 命令 → 從當(dāng)前數(shù)據(jù)庫(kù)中刪除數(shù)據(jù)庫(kù)角色。
sp_addrolemember (Transact-SQL) → 命令 → 為當(dāng)前數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)角色添加數(shù)據(jù)庫(kù)用戶(hù)、數(shù)據(jù)庫(kù)角色、Windows 登錄名或 Windows 組。
sp_droprolemember (Transact-SQL) → 命令 → 從當(dāng)前數(shù)據(jù)庫(kù)的 SQL Server 角色中刪除安全帳戶(hù)。
public 數(shù)據(jù)庫(kù)角色
每個(gè)數(shù)據(jù)庫(kù)用戶(hù)都屬于public 數(shù)據(jù)庫(kù)角色。如果未向某個(gè)用戶(hù)授予或拒絕對(duì)安全對(duì)象的特定權(quán)限時(shí),該用戶(hù)將繼承授予該對(duì)象的public 角色的權(quán)限。
本文就介紹到這里,由于本人水平有限,若文中有描述不當(dāng)?shù)牡胤?,歡迎各位批評(píng)指正。謝謝了。
【編輯推薦】