SQL Server中的角色(服务器级别和数据库级别角色)
參考文獻
http://msdn.microsoft.com/zh-cn/library/ms188659.aspx服務器級別角色
為幫助您管理服務器上的權限,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 數據庫中包含下表顯示的特殊用途的角色。
| 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 角色。 |
總結
以上是生活随笔為你收集整理的SQL Server中的角色(服务器级别和数据库级别角色)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 类似QQ管家页面jquery图片显隐轮换
- 下一篇: 安卓应用商店的思考