SQL Server 2008資料庫級別的角色

iSQlServer發表於2008-11-25

為便於管理資料庫中的許可權,SQL Server 提供了若干“角色”,這些角色是用於分組其他主體的安全主體。它們類似於 Microsoft Windows 作業系統中的組。資料庫級角色的許可權作用域為資料庫範圍。

SQL Server 中有兩種型別的資料庫級角色:資料庫中預定義的“固定資料庫角色”和您可以建立的“靈活資料庫角色”。

固定資料庫角色是在資料庫級別定義的,並且存在於每個資料庫中。db_owner 和 db_securityadmin 資料庫角色的成員可以管理固定資料庫角色成員身份。但是,只有 db_owner 資料庫角色的成員能夠向 db_owner 固定資料庫角色中新增成員。msdb 資料庫中還有一些特殊用途的固定資料庫角色。

您可以向資料庫級角色中新增任何資料庫帳戶和其他 SQL Server 角色。固定資料庫角色的每個成員都可向同一個角色新增其他登入名。

重要提示:
請不要將靈活資料庫角色新增為固定角色的成員。這會導致意外的許可權升級。
 


下表顯示了固定資料庫級角色及其能夠執行的操作。所有資料庫中都有這些角色。

資料庫級別的角色名稱  說明 
db_owner
 db_owner 固定資料庫角色的成員可以執行資料庫的所有配置和維護活動,還可以刪除資料庫。
 
db_securityadmin
 db_securityadmin 固定資料庫角色的成員可以修改角色成員身份和管理許可權。向此角色中新增主體可能會導致意外的許可權升級。
 
db_accessadmin
 db_accessadmin 固定資料庫角色的成員可以為 Windows 登入名、Windows 組和 SQL Server 登入名新增或刪除資料庫訪問許可權。
 
db_backupoperator
 db_backupoperator 固定資料庫角色的成員可以備份資料庫。
 
db_ddladmin
 db_ddladmin 固定資料庫角色的成員可以在資料庫中執行任何資料定義語言 (DDL) 命令。
 
db_datawriter
 db_datawriter 固定資料庫角色的成員可以在所有使用者表中新增、刪除或更改資料。
 
db_datareader
 db_datareader 固定資料庫角色的成員可以從所有使用者表中讀取所有資料。
 
db_denydatawriter
 db_denydatawriter 固定資料庫角色的成員不能新增、修改或刪除資料庫內使用者表中的任何資料。
 
db_denydatareader
 db_denydatareader 固定資料庫角色的成員不能讀取資料庫內使用者表中的任何資料。
 

有關資料庫級固定角色許可權的特定資訊,請參閱固定資料庫角色的許可權(資料庫引擎)。

 msdb 角色
msdb 資料庫中包含下表顯示的特殊用途的角色。

msdb 角色名稱  說明 
db_ssisadmin

db_ssisoperator

db_ssisltduser
 這些資料庫角色的成員可以管理和使用 SSIS。從早期版本升級的 SQL Server 例項可能包含使用 Data Transformation Services (DTS)(而不是 SSIS)命名的舊版本角色。有關詳細資訊,請參閱 使用 Integration Services 角色。
 
dc_admin

dc_operator

dc_proxy
 這些資料庫角色的成員可以管理和使用資料收集器。有關詳細資訊,請參閱資料收集器的安全性。
 
PolicyAdministratorRole
 db_ PolicyAdministratorRole 資料庫角色的成員可以對基於策略的管理策略和條件執行所有配置和維護活動。有關詳細資訊,請參閱使用基於策略的管理來管理伺服器。
 
ServerGroupAdministratorRole

ServerGroupReaderRole
 這些資料庫角色的成員可以管理和使用註冊的伺服器組。有關詳細資訊,請參閱建立伺服器組。
 
重要提示:
db_ssisadmin 角色和 dc_admin 角色的成員也許可以將其許可權提升到 sysadmin。之所以會發生此許可權提升,是因為這些角色可以修改 Integration Services 包,而 SQL Server 可以使用 SQL Server 代理的 sysadmin 安全上下文來執行 Integration Services 包。若要防止在執行維護計劃、資料收集組和其他 Integration Services 包時出現此許可權提升,請將執行包的 SQL Server 代理作業配置為使用擁有有限許可權的代理帳戶,或只將 sysadmin 成員新增到 db_ssisadmin 和 dc_admin 角色。
 


 使用伺服器級角色
下表說明了用於伺服器級角色的命令、檢視和函式。

功能  型別  說明 
sp_helpdbfixedrole (Transact-SQL)
 後設資料
 返回固定資料庫角色的列表。
 
sp_dbfixedrolepermission (Transact-SQL)
 後設資料
 顯示固定資料庫角色的許可權。
 
sp_helprole (Transact-SQL)
 後設資料
 返回當前資料庫中有關角色的資訊。
 
sp_helprolemember (Transact-SQL)
 後設資料
 返回有關當前資料庫中某個角色的成員的資訊。
 
sys.database_role_members (Transact-SQL)
 後設資料
 為每個資料庫角色的每個成員返回一行。
 
IS_MEMBER (Transact-SQL)
 後設資料
 指示當前使用者是否為指定 Microsoft Windows 組或 Microsoft SQL Server 資料庫角色的成員。
 
CREATE ROLE (Transact-SQL)
 命令
 在當前資料庫中建立新的資料庫角色。
 
ALTER ROLE (Transact-SQL)
 命令
 更改資料庫角色的名稱。
 
DROP ROLE (Transact-SQL)
 命令
 從資料庫中刪除角色。
 
sp_addrole (Transact-SQL)
 命令
 在當前資料庫中建立新的資料庫角色。
 
sp_droprole (Transact-SQL)
 命令
 從當前資料庫中刪除資料庫角色。
 
sp_addrolemember (Transact-SQL)
 命令
 為當前資料庫中的資料庫角色新增資料庫使用者、資料庫角色、Windows 登入名或 Windows 組。
 
sp_droprolemember (Transact-SQL)
 命令
 從當前資料庫的 SQL Server 角色中刪除安全帳戶。
 

 public 資料庫角色
每個資料庫使用者都屬於 public 資料庫角色。如果未向某個使用者授予或拒絕對安全物件的特定許可權時,該使用者將繼承授予該物件的 public 角色的許可權。

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-503157/,如需轉載,請註明出處,否則將追究法律責任。

相關文章