GRANT 伺服器權限 (Transact-SQL)
授與伺服器的權限。
語法
GRANT permission [ ,...n ]
TO <grantee_principal> [ ,...n ] [ WITH GRANT OPTION ]
[ AS <grantor_principal> ]
<grantee_principal> ::= SQL_Server_login
| SQL_Server_login_mapped_to_Windows_login
| SQL_Server_login_mapped_to_Windows_group
| SQL_Server_login_mapped_to_certificate
| SQL_Server_login_mapped_to_asymmetric_key
| server_role
<grantor_principal> ::= SQL_Server_login
| SQL_Server_login_mapped_to_Windows_login
| SQL_Server_login_mapped_to_Windows_group
| SQL_Server_login_mapped_to_certificate
| SQL_Server_login_mapped_to_asymmetric_key
| server_role
引數
permission
指定可以授與的伺服器權限。 如需權限清單,請參閱這個主題稍後的<備註>一節。TO <grantee_principal>
指定要對其授與權限的主體。AS <grantor_principal>
指定主體,執行這項查詢的主體會從這個主體衍生權限來授與權限。WITH GRANT OPTION
指出主體也有權授與指定權限給其他主體。SQL_Server_login
指定 SQL Server 登入。SQL_Server_login_mapped_to_Windows_login
指定對應至 Windows 登入的 SQL Server 登入。SQL_Server_login_mapped_to_Windows_group
指定對應至 Windows 群組的 SQL Server 登入。SQL_Server_login_mapped_to_certificate
指定對應至憑證的 SQL Server 登入。SQL_Server_login_mapped_to_asymmetric_key
指定對應至非對稱金鑰的 SQL Server 登入。server_role
指定使用者定義伺服器角色。
備註
只有在目前資料庫是 master 的情況下,才能夠授與伺服器範圍的權限。
您可以在 sys.server_permissions 目錄檢視中檢視有關伺服器權限的資訊,在 sys.server_principals 目錄檢視中檢視有關伺服器主體的資訊。 您可以在 sys.server_role_members 目錄檢視中檢視有關伺服器角色成員資格的資訊。
伺服器是最高層級的權限階層。 下表所列的是可以授與之最特定且最有限的伺服器權限。
伺服器權限 |
伺服器權限所隱含 |
---|---|
ADMINISTER BULK OPERATIONS |
CONTROL SERVER |
ALTER ANY AVAILABILITY GROUP |
CONTROL SERVER |
ALTER ANY CONNECTION |
CONTROL SERVER |
ALTER ANY CREDENTIAL |
CONTROL SERVER |
ALTER ANY DATABASE |
CONTROL SERVER |
ALTER ANY ENDPOINT |
CONTROL SERVER |
ALTER ANY EVENT NOTIFICATION |
CONTROL SERVER |
ALTER ANY EVENT SESSION |
CONTROL SERVER |
ALTER ANY LINKED SERVER |
CONTROL SERVER |
ALTER ANY LOGIN |
CONTROL SERVER |
ALTER ANY SERVER AUDIT |
CONTROL SERVER |
ALTER ANY SERVER ROLE |
CONTROL SERVER |
ALTER RESOURCES |
CONTROL SERVER |
ALTER SERVER STATE |
CONTROL SERVER |
ALTER SETTINGS |
CONTROL SERVER |
ALTER TRACE |
CONTROL SERVER |
AUTHENTICATE SERVER |
CONTROL SERVER |
CONNECT SQL |
CONTROL SERVER |
CONTROL SERVER |
CONTROL SERVER |
CREATE ANY DATABASE |
ALTER ANY DATABASE |
CREATE AVAILABILITY GROUP |
ALTER ANY AVAILABILITY GROUP |
CREATE DDL EVENT NOTIFICATION |
ALTER ANY EVENT NOTIFICATION |
CREATE ENDPOINT |
ALTER ANY ENDPOINT |
CREATE SERVER ROLE |
ALTER ANY SERVER ROLE |
CREATE TRACE EVENT NOTIFICATION |
ALTER ANY EVENT NOTIFICATION |
EXTERNAL ACCESS ASSEMBLY |
CONTROL SERVER |
SHUTDOWN |
CONTROL SERVER |
UNSAFE ASSEMBLY |
CONTROL SERVER |
VIEW ANY DATABASE |
VIEW ANY DEFINITION |
VIEW ANY DEFINITION |
CONTROL SERVER |
VIEW SERVER STATE |
ALTER SERVER STATE |
權限
同意授權者 (或是指定了 AS 選項的主體) 必須具有指定了 GRANT OPTION 的權限本身,或是具有隱含目前正在授與權限的更高權限。 系統管理員 (sysadmin) 固定伺服器角色的成員也能夠授與任何權限。
範例
A.授與權限給登入
下列範例會將 CONTROL SERVER 權限授與 SQL Server 登入 TerryEminhizer。
USE master;
GRANT CONTROL SERVER TO TerryEminhizer;
GO
B.授與具有 GRANT 權限的權限
下列範例會將 ALTER ANY EVENT NOTIFICATION 授與 SQL Server 登入 JanethEsteves,而這項登入具有對將該權限授與其他登入的權限。
USE master;
GRANT ALTER ANY EVENT NOTIFICATION TO JanethEsteves WITH GRANT OPTION;
GO
C.授與權限給伺服器角色
下列範例會建立兩個名稱為 ITDevAdmin 和 ITDevelopers 的伺服器角色。 它會將 ALTER ANY DATABASE 權限授與 ITDevAdmin 使用者定義的伺服器角色,包括 WITH GRANT 選項,讓 ITDevAdmin 伺服器角色可以重新指派 ALTER ANY DATABASE 權限。 此範例接著會授權 ITDevelopers 使用 ITDevAdmin 伺服器角色的 ALTER ANY DATABASE 權限。
USE master;
CREATE SERVER ROLE ITDevAdmin ;
CREATE SERVER ROLE ITDevelopers ;
GRANT ALTER ANY DATABASE TO ITDevAdmin WITH GRANT OPTION ;
GRANT ALTER ANY DATABASE TO ITDevelopers AS ITDevAdmin ;
GO
請參閱
參考
sys.fn_builtin_permissions (Transact-SQL)
sys.fn_my_permissions (Transact-SQL)
HAS_PERMS_BY_NAME (Transact-SQL)