用户自己的架构的表上的SELECT权限被拒绝

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用户自己的架构的表上的SELECT权限被拒绝相关的知识,希望对你有一定的参考价值。

我在VB 6.0,AppOK和AppFailed上有两个应用程序。两者都与SQL Server上的数据库连接,用户AppUser并查询表。 AppOK成功,AppFailed失败并显示以下错误消息。

运行时错误'-2147217911(80040e09)':

对象'xxxxx',数据库'xxxxx',架构'xxxxx'上的SELECT权限被拒绝。

该表存在于AppUser的模式中,当我明确地向用户授予SELECT权限时

无法授予,拒绝或撤消对sa,dbo,实体所有者,information_schema,sys或您自己的权限。

AppFailed能够查询模式中的所有其他表,但在新创建的4个表上失败,而AppOK可以查询所有这些表。

两个应用程序的连接字符串完全相同。在与AppUser连接时通过Management Studio查询这4个新表可以正常工作。 AppUser没有任何DENY权限。

我无法弄清楚这个问题。

答案

很明显,从AppFailed连接的用户角色存在一些差异。

使用SQL事件探查器跟踪两个应用程序的警告和错误。您在SQL Profiler中寻找的特定事件在此处描述:Exception Event

确保包含与用户登录相关的列,并查找两个应用程序的活动差异。

以下是使用SQL事件探查器跟踪错误的一些信息:https://nimblegecko.com/how-to-trace-sql-server-database-errors-and-exceptions-with-sql-profiler/

另一答案

试试这个

1)dbaccess sysmaster 2)将syssqlstat上的select授予public;

另一答案

:(。应用程序正在连接后改变用户本身的角色(我不知道这一点),该角色没有新创建的表的权限。

以上是关于用户自己的架构的表上的SELECT权限被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

mysql:在 information_schema 上的访问被拒绝

拒绝了对对象 (数据库 ,架构_'dbo')的_SELECT_权限

sql2008拒绝了对对象 (数据库 ,架构'dbo')的SELECT权限

MySQL DROP TABLE操作以及 DROP 大表时的注意事项

拒绝了对对象 'base_config' (数据库 '****',架构 'dbo')的 SELECT 权限

为啥我会收到“权限被拒绝”?