为什么刚建的一个数据库用户,对同一个数据库里的两张表,对其中的一张表可以使用查询权限,而对另一张表不可以呢?真是怪问题(30分)

  • 主题发起人 主题发起人 take2001
  • 开始时间 开始时间
T

take2001

Unregistered / Unconfirmed
GUEST, unregistred user!
sp_addlogin 'take','1234','work_time','english'<br>use work_time<br>sp_grantdbaccess 'take','take' &nbsp; //授予访问work_time数据库权限<br>sp_addsrvrolemember 'take','bulkadmin' &nbsp;//授予服务器角色<br>sp_addrolemember 'db_datareader','take' &nbsp;//授予数据库角色(只具有查询)<br>我又没有使用拒绝语句,请问为什么呢?
 
消息 229,级别 14,状态 5,第 1 行<br>拒绝了对对象 'Employe'(数据库 'Work_Time',所有者 'dbo')的 SELECT 权限。<br>怎么恢复呢?那是我刚建的用户,我都没有使用过deny,怎么出现这错误..<br>查询该数据库的其他表就不会出错..就对Employe这个表会出现上面的错误.<br>我用 grant select on employe to take 语句成功执行后,再去查询的时候也一样出错..<br>到底是哪错了?
 
我在查询分析器中试了一下,这样执行后连系统表都可以访问,没问题
 
use work_time是可以!<br>可是当要查询里面的表时,就出现了SELECT permission denied on object 'Employe', database 'Work_Time', owner 'dbo'.这个错误!!
 
消息 229,级别 14,状态 5,第 1 行<br>拒绝了对对象 'Employe'(数据库 'Work_Time',所有者 'dbo')的 SELECT 权限。<br>怎么恢复呢?那是我刚建的用户,我都没有使用过deny,怎么出现这错误..<br>查询该数据库的其他表就不会出错..就对Employe这个表会出现上面的错误.<br>我用 grant select on employe to take 语句成功执行后,再去查询的时候也一样出错..<br>到底是哪错了?
 
除了给角色分配权限外,你还必须在使用前激活角色!<br>sp_setapprole &nbsp; <br>&nbsp; 激活与当前数据库中的应用程序角色关联的权限。 &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; 语法 &nbsp; <br>&nbsp; sp_setapprole &nbsp; [@rolename &nbsp; =] &nbsp; 'role' &nbsp; , &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [@password &nbsp; =] &nbsp; {Encrypt &nbsp; N &nbsp; 'password'} &nbsp; | &nbsp; 'password' &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [,[@encrypt &nbsp; =] &nbsp; 'encrypt_style'] &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; 参数 &nbsp; <br>&nbsp; [@rolename &nbsp; =] &nbsp; 'role'
 
楼上的应该不对吧!!
 
自己顶一下!!!哎!!!
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
928
SUNSTONE的Delphi笔记
S
后退
顶部