SQL 2005用户拒绝了SELECT权限

属于特定数据库上的public,db_datareader和db_datawriterangular色的域用户(User1)在尝试从该数据库(包括新创build的testing表)上的任何表中进行select时会收到以下消息:

The SELECT permission was denied on the object 'table1', database 'database1', schema 'dbo'. 

这个用户完全可以在同一台服务器上的其他数据库上工作。 它没有明确地拒绝在数据库或表级别的权限(我至less可以find)。

我试过了(无济于事):

  • 删除用户并将其重新映射到数据库
  • 将用户分配给db_ownerangular色
  • 特别授予数据库和表级别的select权限

唯一有所作为的是将用户设置为sysadmin服务器angular色 – 但这不适用于生产。

如何解决这个问题呢?

用户最有可能是拒绝权限的组的成员 – 拒绝优先于授予。

运行以下命令查看权限;

 select object_name(major_id) as object, user_name(grantee_principal_id) as grantee, user_name(grantor_principal_id) as grantor, permission_name, state_desc from sys.database_permissions where major_id = object_id('table1') and class = 1 

难道是你使用所有权链接,并触及这个问题 ?

希望这可以帮助