4

我刚开始学习 SQL 的基础知识,当我在搜索数据操作语言、数据控制语言、数据定义语言时,有些东西没有意义。

据我了解,数据控制语言有 3 个关键字:Grant、Deny、Revoke。

“授予”允许指定的用户做某些事情。“撤销”会破坏指定用户拥有的任何安全许可。

但是,我不明白的是“拒绝”。

如果用户一开始没有对特定数据库的安全许可(有没有专门的计算机科学术语?),为什么设计数据库的程序员会“拒绝”该用户对该数据库的许可?这没有意义。

有人能告诉我为什么以及在哪里使用“拒绝”吗?

4

2 回答 2

5

拒绝 - 如“拒绝访问”。

这意味着明确不允许某人做某事。这与授予和撤销授予访问权限和取消访问权限不同。

考虑您可以授予组访问模式的权限,但对于该组的子集,您希望拒绝访问模式中定义的表的子集。“拒绝”为您提供了一种方法。

于 2013-07-19T14:13:21.530 回答
1

DENY 命令可用于显式阻止用户接收特定权限。

当用户可能是被授予权限的角色或组的成员并且您希望通过创建例外来防止该用户继承权限时,这很有帮助。

于 2013-07-19T14:17:22.657 回答