SQL 2005 用户被拒绝 SELECT 权限

SQL 2005 用户被拒绝 SELECT 权限

属于特定数据库上的 public、db_datareader 和 db_datawriter 角色的域用户 (User1) 在尝试从该数据库上的任何表(包括新创建的测试表)中进行选择时收到以下消息:

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

该用户在同一台​​服务器上的其他几个数据库上工作正常。该用户在数据库或表级别没有被明确拒绝权限(至少我能找到这样的权限)。

我尝试过(但没有成功):

  • 删除用户并将其重新映射到数据库
  • 将用户分配给 db_owner 角色
  • 具体授予数据库和表级别的选择权限

唯一有区别的是将用户设置为 sysadmin 服务器角色 - 但这对于生产来说是不可行的。

我还能怎样解决这个问题?

答案1

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

运行以下命令查看权限;

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

是不是你正在使用所有权链,并且击​​中这个问题

希望这可以帮助

相关内容