GRANT 伺服器主體權限 (Transact-SQL)
授與 SQL Server 登入的權限。
語法
GRANT permission [ ,...n ] }
ON LOGIN :: SQL_Server_login
TO <server_principal> [ ,...n ]
[ WITH GRANT OPTION ]
[ AS SQL_Server_login ]
<server_principal> ::=
SQL_Server_login
| SQL_Server_login_from_Windows_login
| SQL_Server_login_from_certificate
| SQL_Server_login_from_AsymKey
引數
- permission
指定可以授與的 SQL Server 登入權限。如需權限清單,請參閱這個主題稍後的「備註」一節。
- LOGIN :: SQL_Server_login
指定要授與其權限的 SQL Server 登入。需要範圍限定詞 (::)。
- TO <server_principal>
指定要授與其權限的 SQL Server 登入。
- SQL_Server_login
指定 SQL Server 登入的名稱。
- SQL_Server_login_from_Windows_login
指定從 Windows 登入建立的 SQL Server 登入名稱。
- SQL_Server_login_from_certificate
指定對應至憑證的 SQL Server 登入名稱。
- SQL_Server_login_from_AsymKey
指定對應至非對稱金鑰的 SQL Server 登入名稱。
- WITH GRANT OPTION
指出主體也有權授與指定權限給其他主體。
- AS SQL_Server_login
指定 SQL Server 登入,執行這項查詢的主體會從這項登入衍生其權限來授與權限。
備註
只有在目前資料庫是 master 的情況下,才能夠授與伺服器範圍的權限。
您可以在 sys.server_permissions 目錄檢視中,看到有關伺服器權限的資訊。您可以在 sys.server_principals 目錄檢視中,看到有關伺服器主體的資訊。
SQL Server 登入是伺服器層級的安全性實體。下表所列的是可以授與之最特定和最有限的 SQL Server 登入權限,並列出利用隱含方式來併入這些權限的較通用權限。
SQL Server 登入權限 | SQL Server 登入權限所隱含 | 伺服器權限所隱含 |
---|---|---|
CONTROL |
CONTROL |
CONTROL SERVER |
IMPERSONATE |
CONTROL |
CONTROL SERVER |
VIEW DEFINITION |
CONTROL |
VIEW ANY DEFINITION |
ALTER |
CONTROL |
ALTER ANY LOGIN |
權限
需要登入的 CONTROL 權限或伺服器的 ALTER ANY LOGIN 權限。
範例
A. 授與登入的 IMPERSONATE 權限
下列範例會將 SQL Server 登入 WanidaBenshoof
的 IMPERSONATE
權限與從 Windows 使用者 AdvWorks\YoonM
建立的 SQL Server 登入。
USE master;
GRANT IMPERSONATE ON LOGIN::WanidaBenshoof to [AdvWorks\YoonM];
GO
B. 授與具有 GRANT OPTION 的 VIEW DEFINITION 權限
下列範例會將 SQL Server 登入 EricKurjan
的 VIEW DEFINITION
授與具有 GRANT OPTION
的 SQL Server 登入 RMeyyappan
。
USE master;
GRANT VIEW DEFINITION ON LOGIN::EricKurjan TO RMeyyappan
WITH GRANT OPTION;
GO
請參閱
參考
sys.server_principals (Transact-SQL)
sys.server_permissions (Transact-SQL)
CREATE LOGIN (Transact-SQL)