小编Mas*_*iti的帖子

收到“对象的 SELECT 权限被拒绝”,即使它已被授予

我是一名程序员,而不是一名 dba ……我知道足够危险。

我继承了一个旧用户的数据库,该用户是该数据库的 db_owner。出于业务原因,我们无法调整此用户对现有表、模式等的权限,但正在创建一些新表,我只希望此用户对它们具有 SELECT 访问权限。

已经为这些表为该用户设置了权限,因此除了 SELECT 设置为 GRANT 之外,所有内容都被拒绝。

然而,当此用户 (dbadmin) 尝试对这些表之一 (AccountingAudit) 执行 SELECT 时,会发生此错误:

The SELECT permission was denied on the object 'AccountingAudit', database 'billing', schema 'dbo'.
Run Code Online (Sandbox Code Playgroud)

我已运行此 SQL 以尝试查看为此表/用户设置的权限:

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
Run Code Online (Sandbox Code Playgroud)

这就是我得到的:

AccountingAudit dbadmin dbo ALTER   DENY
AccountingAudit dbadmin dbo CONTROL DENY
AccountingAudit dbadmin dbo DELETE  DENY
AccountingAudit dbadmin dbo INSERT  DENY
AccountingAudit dbadmin dbo REFERENCES  DENY
AccountingAudit dbadmin dbo SELECT  GRANT …
Run Code Online (Sandbox Code Playgroud)

sql-server permissions sql-server-2008-r2

11
推荐指数
1
解决办法
5万
查看次数