Grant和Revoke的区别
数据控制语言(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
通过上述命令,用户 ybaiuser 已授予帐户数据库对象的权限,例如他可以查询或插入帐户。
revoke insert,
select on accounts from Ram
通过上述命令,用户 Ram的权限(如对帐户数据库对象的查询或插入)已被删除。
Grant 和 Revoke 命令的区别:
编号 | Grant | Revoke |
---|---|---|
1 | DCL 命令授予用户对数据库对象的权限。 | 如果授予用户对数据库对象的任何权限,此 DCL 命令将删除权限。 |
2 | Grant为用户分配访问权限。 | Revoke撤销用户的用户访问权限。 |
3 | Grant需要为每个用户指定权限。 | 如果删除了一位用户的访问权限; 该用户向其他人提供的所有特定权限都将被删除。 |
4 | 当访问分散时,授予权限将很容易。 | 如果去中心化访问很难删除授予的权限。 |