爲便於管理數據庫中的權限,SQL Server 提供了若干「角色」,這些角色是用於分組其餘主體的安全主體。它們相似於 Microsoft Windows 操做系統中的組。數據庫級角色的權限做用域爲數據庫範圍。數據庫
SQL Server 中有兩種類型的數據庫級角色:數據庫中預約義的「固定數據庫角色」和您能夠建立的「靈活數據庫角色」。安全
固定數據庫角色是在數據庫級別定義的,而且存在於每一個數據庫中。db_owner 和 db_securityadmin 數據庫角色的成員能夠管理固定數據庫角色成員身份。可是,只有 db_owner 數據庫角色的成員可以向 db_owner 固定數據庫角色中添加成員。msdb 數據庫中還有一些特殊用途的固定數據庫角色。服務器
您能夠向數據庫級角色中添加任何數據庫賬戶和其餘 SQL Server 角色。固定數據庫角色的每一個成員均可向同一個角色添加其餘登陸名。函數
重要提示:操作系統
請不要將靈活數據庫角色添加爲固定角色的成員。這會致使意外的權限升級。代理
下表顯示了固定數據庫級角色及其可以執行的操做。全部數據庫中都有這些角色。orm
數據庫級別的角色名稱及說明
db_owner 固定數據庫角色的成員能夠執行數據庫的全部配置和維護活動,還能夠刪除數據庫。對象
db_securityadmin 固定數據庫角色的成員能夠修改角色成員身份和管理權限。向此角色中添加主體可能會致使意外的權限升級。繼承
db_accessadmin 固定數據庫角色的成員能夠爲 Windows 登陸名、Windows 組和 SQL Server 登陸名添加或刪除數據庫訪問權限。作用域
db_backupoperator 固定數據庫角色的成員能夠備份數據庫。
db_ddladmin 固定數據庫角色的成員能夠在數據庫中運行任何數據定義語言 (DDL) 命令。
db_datawriter 固定數據庫角色的成員能夠在全部用戶表中添加、刪除或更改數據。
db_datareader 固定數據庫角色的成員能夠從全部用戶表中讀取全部數據。
db_denydatawriter 固定數據庫角色的成員不能添加、修改或刪除數據庫內用戶表中的任何數據。
db_denydatareader 固定數據庫角色的成員不能讀取數據庫內用戶表中的任何數據。
有關數據庫級固定角色權限的特定信息,請參閱固定數據庫角色的權限(數據庫引擎)。
msdb 角色 msdb 數據庫中包含下表顯示的特殊用途的角色。
msdb 角色名稱及說明
這些數據庫角色的成員能夠管理和使用 SSIS。從早期版本升級的 SQL Server 實例可能包含使用 Data Transformation Services (DTS)(而不是 SSIS)命名的舊版本角色。有關詳細信息,請參閱 使用 Integration Services 角色。
這些數據庫角色的成員能夠管理和使用數據收集器。有關詳細信息,請參閱數據收集器的安全性。
db_ PolicyAdministratorRole 數據庫角色的成員能夠對基於策略的管理策略和條件執行全部配置和維護活動。有關詳細信息,請參閱使用基於策略的管理來管理服務器。
這些數據庫角色的成員能夠管理和使用註冊的服務器組。有關詳細信息,請參閱建立服務器組。
重要提示:
db_ssisadmin 角色和 dc_admin 角色的成員也許能夠將其權限提高到 sysadmin。之因此會發生此權限提高,是由於這些角色能夠修改 Integration Services 包,而 SQL Server 可使用 SQL Server 代理的 sysadmin 安全上下文來執行 Integration Services 包。若要防止在運行維護計劃、數據收集組和其餘 Integration Services 包時出現此權限提高,請將運行包的 SQL Server 代理做業配置爲使用擁有有限權限的代理賬戶,或只將 sysadmin 成員添加到 db_ssisadmin 和 dc_admin 角色。
使用服務器級角色
下表說明了用於服務器級角色的命令、視圖和函數。
功能 類型 說明
public 數據庫角色
每一個數據庫用戶都屬於 public 數據庫角色。若是未向某個用戶授予或拒絕對安全對象的特定權限時,該用戶將繼承授予該對象的 public 角色的權限