SQL Server的GRANT,REVOKE权限用户 [英] sql server grant, revoke permission to a user

查看:407
本文介绍了SQL Server的GRANT,REVOKE权限用户的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我写了一个简单的C#code连接到SQL服务器数据库,并执行一个查询:

I wrote a simple c# code that connect to sql-server database and execute a query:

        cmd = new SqlCommand(txtQuery.Text.ToString().Trim(), con);
        cmd.ExecuteNonQuery();

  • 在我的分贝我有一个名为myTB表。我有两个用户也:USER1(所有者),用户2(新用户创建的)

    • in my db I have a table named myTB. I have two users too: user1(owner), user2(new user created)

      我的登录(连接到DB)与用户2 的用户名和密码!

      I logged in (connected to DB) with user2's username and password !

      我可以访问通过USER1与查询波纹管创建的表:

      I can access the tables that created by user1 with the query bellow:

      SELECT * FROM user1.myTB

      (我不知道为什么我得到的错误与此查询:从myTB选择*,现在忘了)

      (I don't know why I get error with this query:"select * from myTB", forget it now!)

      现在我想撤销选择,从用户2权限。我的意思是我不希望用户2执行 select查询标签上是由用户1创建m​​yTB表。

      Now I wanna REVOKE 'select' permission from user2. I mean I don't want user2 to execute the select query on myTB table which is created by user1.

      我应该做的是,我卡上有一个问题! 我用这个查询,但什么都没有改变!

      what should I do is a problem that I'm stuck on it ! I used this query, but nothing changed !

      Q1:撤销选择On user1.myTB从用户2

      Q1: "Revoke select ON user1.myTB FROM user2"

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

      again user2 can do select * from user1.myTB !!! WHY !?

      请帮助我。 谢谢。

      推荐答案

      用户2可能得到它的权限从角色成员。

      user2 is probably getting it's permissions from a role membership.

      运行:

      use [<YourDatabase>]
      GO
      
      exec sp_helpuser
      

      发现在第一列中的用户,然后看第二列。是用户的的db_datareader的成员的db_owner

      如果是这样,你可以撤销会员资格,譬如说的db_datareader,这样做:

      If so, you can revoke membership, say for db_datareader, by doing:

      exec sp_droprolemember 'db_datareader', 'user2'
      GO
      

      这篇关于SQL Server的GRANT,REVOKE权限用户的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆