为了账号安全,请及时绑定邮箱和手机立即绑定

你好,请问下面这个数据库的功能为什么要用revoke来实现?

你好,请问下面这个数据库的功能为什么要用revoke来实现?

有只小跳蛙 2021-08-17 19:15:59
You need to disable User1's access to view the data in the table1.问你要用什么语句实现。答案用的是revoke,而不是deny。我的理解是,revoke是对用户原有权限的撤销,那么这道题目里那个词可以看出User1的这个权限是原本就有的?是disable吗?
查看完整描述

2 回答

?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

GRANT:在安全系统中创建项目,使当前数据库中的用户得以处理当前数据库中的数据或执行特定的 Transact-SQL 语句。1 例子:授予语句权限下面的示例给用户 Mary 和 John 授予多个语句权限。GRANT CREATE DATABASE, CREATE TABLE TO Mary, John授予全部语句权限给用户RoseGRANT ALL to Rose2 例子:授予对象权限GRANT SELECT ON authors TO publicGRANT INSERT, UPDATE, DELETE ON authors TO Mary, John, Tom DENY:在安全系统中创建一项,以拒绝给当前数据库内的安全帐户授予权限并防止安全帐户通过其组或角色成员资格继承权限。1 例子:拒绝语句权限下例对多个用户拒绝多个语句权限。用户不能使用 CREATE DATABASE 和 CREATE TABLE 语句DENY CREATE DATABASE, CREATE TABLE TO Mary, John对用户Rose拒绝全部语句权限DENY ALL to Rose2 例子:拒绝对象权限DENY INSERT, UPDATE, DELETE ON authors TO Mary, John, Tom REVOKE:删除以前在当前数据库内的用户上授予或拒绝的权限。1 废除类似于拒绝,但是,废除权限是删除已授予的权限,并不妨碍用户、组或角色从更高级别继承已授予的权限。因此,如果废除用户查看表的权限,不一定能防止用户查看该表,因为已将查看该表的权限授予了用户所属的角色。2 角色是权限的一个集合,可以指派给用户或其它角色。这样只对角色进行权限设置便可以实现对多个用户权限的设置3 举例:DENY与REVOKE区别例如,从 HumanResources 角色中删除 Employees 表上的 SELECT 访问权限将废除该权限,从而使 HumanResources 不能再使用该表。如果 HumanResources 是 Administration 角色的成员。如果以后将 Employees 上的 SELECT 权限授予了 Administration,则 HumanResources 的成员可以通过 Administration 中的成员资格看到该表。但是,如果对 HumanResources 拒绝SELECT权限,则即使以后向 Administration 授予权限,HumanResources 也不会继承该权限4 例子: 废除授予用户帐户的语句权限下例废除已授予用户 Joe 的 CREATE TABLE 权限。它删除了允许 Joe 创建表的权限。不过,如果已将 CREATE TABLE 权限授予给了包含 Joe 的任何角色,那么 Joe 仍可创建表。REVOKE CREATE TABLE FROM Joe5 例子: 废除授予多个用户帐户的多个权限下例废除授予多个用户的多个语句权限。REVOKE CREATE TABLE, CREATE INDEX FROM Mary, John6 例子: 废除拒绝的权限用户 Mary 是 Budget 角色的成员,已给该角色授予了对 Budget_Data 表的 SELECT 权限。已对 Mary 使用 DENY 语句以防止 Mary 通过授予 Budget 角色的权限访问 Budget_Data 表下例删除对 Mary 拒绝的权限,并通过适用于 Budget 角色的 SELECT 权限,允许 Mary 对该表使用 SELECT 语句。REVOKE SELECT ON Budget_Data TO Mary

查看完整回答
反对 回复 2021-08-23
?
守候你守候我

TA贡献1802条经验 获得超10个赞

因为SELECT权限,DENY不能控制。

查看完整回答
反对 回复 2021-08-23
  • 2 回答
  • 0 关注
  • 309 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信