【问题标题】:sql server grant, revoke permission to a usersql server 授予,撤销对用户的权限
【发布时间】:2013-02-13 06:52:06
【问题描述】:

我编写了一个简单的 c# 代码,连接到 sql-server 数据库并执行查询:

        cmd = new SqlCommand(txtQuery.Text.ToString().Trim(), con);
        cmd.ExecuteNonQuery();
  • 在我的数据库中,我有一个名为 myTB 的表。我也有两个用户:user1(owner), user2(new user created)

  • 我使用 user2 的用户名和密码登录(连接到 DB)!

  • 我可以使用下面的查询访问由 user1 创建的表:

    “从 user1.myTB 中选择 *”

    (我不知道为什么这个查询会出错:“select * from myTB”,现在算了吧!)

  • 现在我想 REVOKE 'select' 来自 user2 的权限。我的意思是我不希望 user2 对 user1 创建的 myTB 表执行 select 查询

  • 遇到一个问题我该怎么办! 我使用了这个查询,但没有任何改变!

Q1:“从 user2 撤消对 user1.myTB 的选择”

user2 再次可以从 user1.myTB 中选择 * !!!为什么!?

请帮我解决这个问题。 谢谢。

【问题讨论】:

  • 如果您执行select * from myTB,您实际上是在告诉 SQL Server myTB 存在于默认架构中(dbo,除非它已被更改)。在这种情况下,尽管您没有明确说明,myTB 显然归 user1 的模式所有,这就是 select * from user1.myTB 起作用的原因,因为您已经正确指定了表的位置。一般而言,始终指定表所在的架构是公认的好习惯,除非您非常懒惰并且将所有内容都留在了 dbo 中,这在许多情况下是不受欢迎的。
  • @StevePettifer 谢谢 :)
  • 顺便说一句,我偶尔会将自己归入超级懒惰的类别 - 该特定句子通常不是专门针对您或您的工作的! :)
  • @StevePettifer 没关系;)但我的问题出在!我不知道如何撤销用户的选择权限! :(这里没有人回答我!

标签: c# .net sql-server winforms


【解决方案1】:

user2 可能正在从角色成员中获取权限。

运行:

use [<YourDatabase>]
GO

exec sp_helpuser

在第一列中找到用户,然后查看第二列。用户是db_datareaderdb_owner 的成员吗?

如果是这样,您可以通过以下方式撤销成员资格,例如 db_datareader:

exec sp_droprolemember 'db_datareader', 'user2'
GO

【讨论】:

    【解决方案2】:

    你不能撤销你没有授予的东西。看起来你想要:

    1. 调查并了解为什么user2 有权选择
    2. 可能拒绝选择user2

    权限工作如下:

    • 最初,用户拥有来自其组成员身份(包括公共角色)的权限
    • GRANT 明确授予特权
    • REVOKE 收回先前授予的权限,恢复到具有从组成员身份隐式继承的权限的用户
    • DENY 拒绝特权

    优先规则是任何 DENY 优先于任何 GRANT 或继承的特权。一个人可以通过多个 GRANT 获得访问权限,但一个 DENY 将撤销该权限。您不能向安全所有者授予/撤销/拒绝权限(db_owner 的成员拥有一切sysadmin 的成员拥有整个服务器上的一切)。 p>

    【讨论】:

    • 谢谢。你的权利。但我现在该怎么办?我怎么能从表中撤销选择权限(即使表在 dbo 中)
    【解决方案3】:

    感谢朋友们, 我已经解决了它并使用 DENY 而不是 REVOKE :

    拒绝选择 ON user1.myTB TO user2

    【讨论】:

    • 公平地说,Remus Rusanu 确实建议在第一个实例中使用DENY,所以他的答案应该是被接受的。
    猜你喜欢
    • 2015-01-13
    • 1970-01-01
    • 1970-01-01
    • 2016-10-07
    • 1970-01-01
    • 2015-07-27
    • 1970-01-01
    • 2011-02-13
    • 1970-01-01
    相关资源
    最近更新 更多