属于特定数据库上角色 public、db_datareader 和 db_datawriter 的域用户 (User1) 在尝试从该数据库上的任何表(包括新创建的测试表)中进行选择时收到以下消息:
The SELECT permission was denied on the object 'table1', database 'database1', schema 'dbo'.
该用户可以在同一台服务器上的其他几个数据库上完美运行。它没有在数据库或表级别明确拒绝权限(至少我可以找到)。
我试过(无济于事):
- 删除用户并将其重新映射到数据库
- 将用户分配给 db_owner 角色
- 专门授予数据库和表级别的选择权限
唯一有所作为的是将用户设置为 sysadmin 服务器角色 - 但这对于生产来说是不可行的。
我还能如何解决这个问题?
用户很可能是权限被拒绝的组的成员 - 拒绝优先于授予。
运行以下命令查看权限;
可能是您正在使用所有权链接并遇到此问题吗?
希望这可以帮助