SqlServer服務器和數據庫角色


首先我們來闡述服務器(實例級別)的權限,實例級別和數據庫級別權限的最大不同在於:實例級別的權限是直接授權給登錄名,而數據庫級別的全顯示授予數據庫用戶的,然后數據庫用戶再與登錄名匹配。(再SqlServer中,登錄名和用戶是兩個概念,登錄名用於登錄到數據庫實例,而用戶位於數據庫之內,用於和登錄名匹配)

舉例:

--指定登錄名為dbtester,並且創建test數據庫中的用戶tester1
execute sp_grantdbaccess ‘dbtester’,'tester1'

在服務器(實例)范圍內,對於不同的對象也可以授予不同的權限,主要有以下幾種:端點,登錄名,高可用性組,自定義服務器角色,固定服務器角色。利用sys.server_principals和sys.server_permissions 這兩個視圖可以查看已經被授予的權限。

示例:QQ截圖20150304151900

其中我們要注意,Control Server 授予用戶超級管理員的權限,可以讓用戶擁有對SqlServer的最高控制權,所以一般不要授予這個權限。

重點介紹一下固定服務器的角色,一共是九個分別是:

sysadmin
執行SQL Server中的任何動作,也是對任何數據庫的任何操作的權限。

serveradmin
配置服務器設置,並可使用SHUTDOWN來停止實例的權限。

setupadmin
向該服務器角色中添加其他登錄,添加、刪除或配置鏈接的服務器,執行一些系統過程,如sp_serveroption。

securityadmin
用於管理登錄名、讀取錯誤日志和創建數據庫許可權限的登錄名,可以執行關於服務器訪問和安全的所有動作。

processadmin
管理SQL Server進程,在實例中殺死其他用戶進程的權限。

dbcreator
創建和修改數據庫

diskadmin
管理物理數據庫的權限。
bulkadmin

向數據庫批量插入數據的權限(SqlServer2005中被添加進來)

public

本身不授予其他成員任何權限。只有連接權限。

固定數據庫角色在數據庫層上進行定義,因此它們存在於屬於數據庫服務器的每個數據庫中。列出了所有的固定數據庫角色。

db_owner
可以執行數據庫中技術所有動作的用戶

db_accessadmin
可以添加、刪除用戶的用戶

db_datareader
可以查看所有數據庫中用戶表內數據的用戶

db_datawriter
可以添加、修改或刪除所有數據庫中用戶表內數據的用戶

db_ddladmin
可以在數據庫中執行所有DDL操作的用戶

db_securityadmin
可以管理數據庫中與安全權限有關所有動作的用戶

db_backoperator
可以備份數據庫的用戶(並可以發布DBCC和CHECKPOINT語句,這兩個語句一般在備份前都會被執行)

db_denydatareader
不能看到數據庫中任何數據的用戶

db_denydatawriter
不能改變數據庫中任何數據的用戶

參考:http://www.cnblogs.com/dannyli/archive/2012/09/18/2690740.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM