2018年6月6日 星期三
【MS-SQL】Login, user, role
Login
用來登入的 entity,可以是 SQL 驗證(在 SQL Server 本身的一組帳密),或 Windows 驗證(Domain 或電腦上的使用者、群組)。
建 for Windows 的 Login 時若 domain\group(account) 不存在,Login 會建不起來。
Login 是在 Server 級,而 User、Role 一般自訂在個別資料庫。
建議用法是在 Windows 建 Group 再幫整個 Group 做 Login。
User
用來劃分權限,可以配置 db、schema、table、sp等,作誰可以存取什麼的管控。
Role
組合複數 Users 簡化管控。
ref: SQL Server 的授權
Windows 驗證的權限
當使用 Windows 驗證進入 SQL Server 時,也是判斷這個 Windows 帳號屬於什麼 User 或 Role 來決定存取範圍;Windows Administrator 會自動被加進 Server Roles 的 sysadmin 所以容易忽略驗證的細節。
ref: SQL Server 的驗證
Default 的 Server Role 與 DB role
Server Role
sysadmin = sa
最大權限什麼都可以做
DB role
dbo = db_owner 擁有的資料庫上什麼都可以做
db_securityadmin 可修改管理其他使用者的權限
db_accessadmin 可增加或刪除登入使用者
db_backupoperator 可備份資料庫
db_ddladmin 可執行資料庫定義語言(ddl),如CREATE、ALTER
db_datawriter 可寫、加、刪資料庫裡的資料
db_datareader 可讀資料(SELECT)
db_denydatawriter 禁止寫入的角色
db_denydatareader 禁止讀取的角色
ref: SQL Server 中的伺服器和資料庫角色
MSDN 建議用 Role 對 Schema 作授權範圍
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言