REVOKE Database Principal Permissions (Transact-SQL)
Revokes permissions granted or denied on a database user, database role, or application role.
REVOKE [ GRANT OPTION FOR ] permission [ ,...n ]
ON
{ [ USER :: database_user ]
| [ ROLE :: database_role ]
| [ APPLICATION ROLE :: application_role ]
}
{ FROM | TO } <database_principal> [ ,...n ]
[ CASCADE ]
[ AS <database_principal> ]
<database_principal> ::=
Database_user
| Database_role
| Application_role
| Database_user_mapped_to_Windows_User
| Database_user_mapped_to_Windows_Group
| Database_user_mapped_to_certificate
| Database_user_mapped_to_asymmetric_key
| Database_user_with_no_login
Database User Permissions
A database user is a database-level securable contained by the database that is its parent in the permissions hierarchy. The most specific and limited permissions that can be revoked on a database user are listed in the following table, together with the more general permissions that include them by implication.
|
Database user permission |
Implied by database user permission |
Implied by database permission |
|---|---|---|
|
CONTROL |
CONTROL |
CONTROL |
|
IMPERSONATE |
CONTROL |
CONTROL |
|
ALTER |
CONTROL |
ALTER ANY USER |
|
VIEW DEFINITION |
CONTROL |
VIEW DEFINITION |
Database Role Permissions
A database role is a database-level securable contained by the database that is its parent in the permissions hierarchy. The most specific and limited permissions that can be revoked on a database role are listed in the following table, together with the more general permissions that include them by implication.
|
Database role permission |
Implied by database role permission |
Implied by database permission |
|---|---|---|
|
CONTROL |
CONTROL |
CONTROL |
|
TAKE OWNERSHIP |
CONTROL |
CONTROL |
|
ALTER |
CONTROL |
ALTER ANY ROLE |
|
VIEW DEFINITION |
CONTROL |
VIEW DEFINITION |
Application Role Permissions
An application role is a database-level securable contained by the database that is its parent in the permissions hierarchy. The most specific and limited permissions that can be revoked on an application role are listed in the following table, together with the more general permissions that include them by implication.
|
Application role permission |
Implied by application role permission |
Implied by database permission |
|---|---|---|
|
CONTROL |
CONTROL |
CONTROL |
|
ALTER |
CONTROL |
ALTER ANY APPLICATION ROLE |
|
VIEW DEFINITION |
CONTROL |
VIEW DEFINITION |
A. Revoking CONTROL permission on a user from another user
The following example revokes CONTROL permission on AdventureWorks2012 user Wanida from user RolandX.
USE AdventureWorks2012; REVOKE CONTROL ON USER::Wanida FROM RolandX; GO
B. Revoking VIEW DEFINITION permission on a role from a user to which it was granted WITH GRANT OPTION
The following example revokes VIEW DEFINITION permission on AdventureWorks2012 role SammamishParking from database user JinghaoLiu. The CASCADE option is specified because the user JinghaoLiu was granted VIEW DEFINITION permission WITH GRANT OPTION.
USE AdventureWorks2012;
REVOKE VIEW DEFINITION ON ROLE::SammamishParking
FROM JinghaoLiu CASCADE;
GO
C. Revoking IMPERSONATE permission on a user from an application role
The following example revokes IMPERSONATE permission on the user HamithaL from AdventureWorks2012 application role AccountsPayable17.
USE AdventureWorks2012; REVOKE IMPERSONATE ON USER::HamithaL FROM AccountsPayable17; GO