📜  授予和撤销之间的区别

📅  最后修改于: 2021-09-14 01:25:14             🧑  作者: Mango

数据控制语言 (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.