參考文獻
服務器級別角色
為幫助您管理服務器上的權限,SQL Server 提供了若干角色。這些角色是用於對其他主體進行分組的安全主體。 服務器級角色的權限作用域為服務器范圍。 (“角色”類似於 Windows 操作系統中的“組”。)
提供固定服務器角色是為了方便使用和向后兼容。 應盡可能分配更具體的權限。
SQL Server 提供了九種固定服務器角色。 無法更改授予固定服務器角色的權限。 從 SQL Server 2012 開始,您可以創建用戶定義的服務器角色,並將服務器級權限添加到用戶定義的服務器角色。
您可以將服務器級主體(SQL Server 登錄名、Windows 帳戶和 Windows 組)添加到服務器級角色。 固定服務器角色的每個成員都可以將其他登錄名添加到該同一角色。 用戶定義的服務器角色的成員則無法將其他服務器主體添加到角色。
下表顯示了服務器級的固定角色及其權限。
| 服務器級的固定角色 |
說明 |
||
|---|---|---|---|
| sysadmin |
sysadmin 固定服務器角色的成員可以在服務器中執行任何活動。 |
||
| serveradmin |
serveradmin 固定服務器角色的成員可以更改服務器范圍內的配置選項並關閉服務器。 |
||
| securityadmin |
securityadmin 固定服務器角色的成員管理登錄名及其屬性。 他們可以 GRANT、DENY 和 REVOKE 服務器級權限。 他們還可以 GRANT、DENY 和 REVOKE 數據庫級權限(如果他們具有數據庫的訪問權限)。 此外,他們還可以重置 SQL Server 登錄名的密碼。
|
||
| processadmin |
processadmin 固定服務器角色的成員可以終止在 SQL Server 實例中運行的進程。 |
||
| setupadmin |
setupadmin 固定服務器角色的成員可以添加和刪除鏈接服務器。 |
||
| bulkadmin |
bulkadmin 固定服務器角色的成員可以運行 BULK INSERT 語句。 |
||
| diskadmin |
diskadmin 固定服務器角色用於管理磁盤文件。 |
||
| dbcreator |
dbcreator 固定服務器角色的成員可以創建、更改、刪除和還原任何數據庫。 |
||
| public |
每個 SQL Server 登錄名均屬於 public 服務器角色。 如果未向某個服務器主體授予或拒絕對某個安全對象的特定權限,該用戶將繼承授予該對象的 public 角色的權限。當您希望該對象對所有用戶可用時,只需對任何對象分配 public 權限即可。 您無法更改 public 中的成員關系。
|
數據庫級別的角色
為便於管理數據庫中的權限,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 角色(早期 SSIS 服務)。 |
| dc_admin dc_operator dc_proxy |
這些數據庫角色的成員可以管理和使用數據收集器。 有關詳細信息,請參閱數據收集。 |
| PolicyAdministratorRole |
db_ PolicyAdministratorRole 數據庫角色的成員可以對基於策略的管理策略和條件執行所有配置和維護活動。 有關詳細信息,請參閱使用基於策略的管理來管理服務器。 |
| ServerGroupAdministratorRole ServerGroupReaderRole |
這些數據庫角色的成員可以管理和使用注冊的服務器組。 |
| dbm_monitor |
在數據庫鏡像監視器中注冊第一個數據庫時在 msdb 數據庫中創建。 在系統管理員為 dbm_monitor 角色分配用戶之前,該角色沒有任何成員。 |
重要提示 |
|---|
| db_ssisadmin 角色和 dc_admin 角色的成員可以將其特權提升為 sysadmin。 由於這些角色可以修改 Integration Services 包,而 SQL Server 使用 SQL Server 代理的 sysadmin 安全上下文可以執行 Integration Services 包,因此可以實現特權提升。 若要防止在運行維護計划、數據收集組和其他 Integration Services 包時提升特權,請將運行包的 SQL Server 代理作業配置為具有有限特權的代理帳戶,或僅將 sysadmin 成員添加到 db_ssisadmin 和 dc_admin 角色。 |

安全說明
注意
重要提示