[SQL SERVER][Maintain]權限管理(1)
SQL SERVER 權限管理大概可分三個層級,
SERVER Level、Database Level和Object Level,
而權限管理往往和資料庫安全密不可分,
我大概簡單透過SSMS操作示範,
讓大家可以清楚每個層級的把關權限。
權限階層
來源自TechNet。
先建立一個登入來操作示範SERVER Level
Create Login
create login test
with password =N'你的密碼',
default_database=mydemo,
check_policy=off,
check_expiration=off
當建立好登入後,透過SSMS查看登入屬性。
伺服器角色
每一個 SQL Server 登入都屬於 public 伺服器角色,
public角色只有連接SQL Instance權限,並沒有任何資料庫存取權限。
伺服器角色類似 windows 群組概念,主要是可以快速方便管理伺服器權限,
而且你也無法新增或修改已存在的伺服器角色。
使用者對應
一般我不會給予db_owner角色,並且也會套用其他結構描述來管理權限。
安全性實體
授與相關權限給該登入帳號
選取物件類型。
伺服器屬性
授予伺服器相關管理權限
如果沒有 VIEW ANY DATABASE 權限,
那麼SSMS物件總管中的資料庫節點將不會顯示任何資料庫。
使用TSQL
拒絕連接SQL權限
deny CONNECT SQL to test
授予連接SQL權限
grant CONNECT SQL to test
相關權限設定好後,
使用 test 登入並確認 SERVER Level 權限,
然後測試看看結果是否OK。
select suser_name()
select *
from sys.fn_my_permissions('','SERVER')
存取其他資料庫測試
嘗試修改伺服器屬性測試
存取資料庫屬性測試
因為 test 不是該資料庫 db_owner,同時也沒授予檢視伺服器狀態權限。
參考