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

问题描述 投票:0回答:3

我在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权限。

我无法弄清楚这个问题。

sql-server vb6 database-administration
3个回答
0
投票

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

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

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

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


0
投票

试试这个

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.