REVOKE 伺服器權限 (Transact-SQL)
移除伺服器層級 GRANT 和 DENY 權限。
適用於:SQL Server (SQL Server 2008 至目前版本)。 |
語法
REVOKE [ GRANT OPTION FOR ] permission [ ,...n ]
{ TO | FROM } <grantee_principal> [ ,...n ]
[ CASCADE ]
[ 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 | FROM } <grantee_principal>
指定要撤銷其權限的主體。AS <grantor_principal>
指定主體,執行這項查詢的主體會從這個主體衍生權限來撤銷權限。GRANT OPTION FOR
指出會撤銷對其他主體授與指定權限的權限。 不會撤銷權限本身。重要事項 如果主體有不含 GRANT 選項的指定權限,則會撤銷權限本身。
CASCADE
指出目前正在撤銷的權限,而這個權限也會被這個主體所授與或拒絕的其他主體所撤銷。警告
獲得授與 WITH GRANT OPTION 之權限的串聯撤銷,會同時撤銷該權限的 GRANT 和 DENY。
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 的情況下,才能夠撤銷伺服器範圍的權限。
REVOKE 會同時移除 GRANT 和 DENY 權限。
您可以利用 REVOKE GRANT OPTION FOR 撤銷重新授與指定權限的權限。 如果主體有授與該權限的權限,則會撤銷授與該權限的權限,且不會撤銷該權限本身。 但是,如果主體有不含 GRANT 選項的指定權限,則會撤銷權限本身。
您可以在 sys.server_permissions 目錄檢視中檢視有關伺服器權限的資訊,在 sys.server_principals 目錄檢視中檢視有關伺服器主體的資訊。 您可以在 sys.server_role_members 目錄檢視中檢視有關伺服器角色成員資格的資訊。
伺服器是最高層級的權限階層。 下表所列的是可以撤銷之最特定且最有限的伺服器權限。
伺服器權限 |
伺服器權限所隱含 |
---|---|
ADMINISTER BULK OPERATIONS |
CONTROL SERVER |
ALTER ANY AVAILABILITY GROUP 適用於:SQL Server (SQL Server 2012 至目前版本)。 |
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 適用於:SQL Server (SQL Server 2012 至目前版本)。 |
CONTROL SERVER |
ALTER RESOURCES |
CONTROL SERVER |
ALTER SERVER STATE |
CONTROL SERVER |
ALTER SETTINGS |
CONTROL SERVER |
ALTER TRACE |
CONTROL SERVER |
AUTHENTICATE SERVER |
CONTROL SERVER |
CONNECT ANY DATABASE 適用於:SQL Server (SQL Server 2014 至目前版本)。 |
CONTROL SERVER |
CONNECT SQL |
CONTROL SERVER |
CONTROL SERVER |
CONTROL SERVER |
CREATE ANY DATABASE |
ALTER ANY DATABASE |
CREATE AVAILABILITY GROUP 適用於:SQL Server (SQL Server 2012 至目前版本)。 |
ALTER ANY AVAILABILITY GROUP |
CREATE DDL EVENT NOTIFICATION |
ALTER ANY EVENT NOTIFICATION |
CREATE ENDPOINT |
ALTER ANY ENDPOINT |
CREATE SERVER ROLE 適用於:SQL Server (SQL Server 2012 至目前版本)。 |
ALTER ANY SERVER ROLE |
CREATE TRACE EVENT NOTIFICATION |
ALTER ANY EVENT NOTIFICATION |
EXTERNAL ACCESS ASSEMBLY |
CONTROL SERVER |
IMPERSONATE ANY LOGIN 適用於:SQL Server (SQL Server 2014 至目前版本)。 |
CONTROL SERVER |
SELECT ALL USER SECURABLES 適用於:SQL Server (SQL Server 2014 至目前版本)。 |
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 |
權限
需要 CONTROL SERVER 權限或系統管理員 (sysadmin) 固定伺服器角色中的成員資格。
範例
A.從登入撤銷權限
下列範例會從 SQL Server 登入 WanidaBenshoof 撤銷 VIEW SERVER STATE 權限。
USE master;
REVOKE VIEW SERVER STATE FROM WanidaBenshoof;
GO
B.撤銷 WITH GRANT 選項
下列範例會從 SQL Server 登入 JanethEsteves 撤銷授與 CONNECT SQL 的權限。
USE master;
REVOKE GRANT OPTION FOR CONNECT SQL FROM JanethEsteves;
GO
該登入仍有 CONNECT SQL 權限,但它無法再對其他主體授與該權限。
請參閱
參考
sys.fn_builtin_permissions (Transact-SQL)
sys.fn_my_permissions (Transact-SQL)
HAS_PERMS_BY_NAME (Transact-SQL)