数据控制语言 (DCL) 帮助用户通过一些指定的查询来检索和修改存储在数据库中的数据。 Grant 和 Revoke 属于数据控制语言的这些类型的命令。 DCL 是 SQL 命令的一个组件。
1. 授予:
SQL Grant 命令专门用于为用户提供对数据库对象的权限。此命令还允许用户为其他用户授予权限。
句法:
grant privilege_name on object_name
to {user_name | public | role_name}
这里privilege_name 是需要授予的权限,object_name 是数据库对象的名称,user_name 是应该提供访问权限的用户,public 用于允许所有用户访问。
2. 撤销:
Revoke 命令撤销用户对数据库对象的权限(如果有)。它执行与 Grant 命令相反的操作。当某个特定用户 U 的权限被撤销时,用户 U 授予所有其他用户的权限也将被撤销。
句法:
revoke privilege_name on object_name
from {user_name | public | role_name}
例子:
grant insert,
select on accounts to Ram
通过上述命令,用户 ram 已授予对帐户数据库对象的权限,例如他可以查询或插入帐户。
revoke insert,
select on accounts from Ram
通过上述命令,用户 ram 的权限(如对帐户数据库对象的查询或插入)已被删除。
要了解确切的 Synatx 及其使用方式,请单击此处。
Grant 和 Revoke 命令的区别:
S.NO | Grant | Revoke |
---|---|---|
1 | This DCL command grants permissions to the user on the database objects. | This DCL command removes permissions if any granted to the users on database objects. |
2 | It assigns access rights to users. | It revokes access rights of users. |
3 | For each user you need to specify the permissions. | If access for one user is removed; all the particular permissions provided by that users to others will be removed. |
4 | When the access is decentralized granting permissions will be easy. | If decentralized access removing the granted permissions is difficult. |