數(shù)據(jù)庫管理:SQL Server 2008安全性探討
Ruby 發(fā)表于:12年09月06日 11:18 [轉(zhuǎn)載] DOIT.com.cn
服務器權限
可以通過制定權限以及將被指派權限的登錄名來管理服務器控制權限,如:
- --將創(chuàng)建數(shù)據(jù)庫的權限授予登錄名Ted
- USE master GRANT CREATE ANY DATABASE TO Ted; GO
- --Ted有權更改該登錄名及允許其他人更改登錄名
- USE master GRANT ALTER ANY LOGIN TO Ted WITH GRANT OPTION; GO
- --刪除Ted的更改登錄名的能力
- USE master REVOKE ALTER ANY LOGIN TO Ted CASCADE; GO
- --禁止Ted創(chuàng)建新數(shù)據(jù)庫
- USE master DENY CREATE ANY DATABASE TO Ted; GO
但是,對于一個登錄名或用戶時否能夠執(zhí)行某一特定的操作而言,DENY和EVOKE并不總是終極答案,如果某登錄名是sysadmin固定服務器角色的一個成員,該登錄名就可以完全控制SQL Server及其資源,而且組織此登錄名訪問服務器上的對象沒有太大意義。
端點是服務器級別的對象,在授予、撤銷和拒絕時,它使用的語法和服務器權限有一些不同。下面的例子創(chuàng)建了一個名為ServiceBroker的端點,它將被用于一個Service Broker應用程序,然后將該端點的ALTER權限授予Ted:
- CREATE ENDPOINT ServiceBroker STATE=STARTED AS TCP (LISTENER_PORT=5162) FOR SERVICE_BROKER (AUTHENTICATION=WINDOWS); GO
- USER master GRANT ALTER ON ENDPOINT :: ServiceBroker TO Ted; GO
- USE master GRANT ALTER ON LOGIN::Ted TO Carol WITH GRANT OPTION; GO
數(shù)據(jù)庫的作用域權限
- USE AdventureWorks2008 CREATE USER Alice FOR LOGIN [AughtEight\Alice]
- WITH DEFAULT_SCHEMA=SALES; GO
- GRANT CONTROL ON SCHEMA::Sales TO Alice
架構作用域權限