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

时间:2018-04-10 05:29:26

标签: sql-server vb6 database-administration

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

  

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

     

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

该表存在于AppUser的架构中,当我明确授予用户SELECT权限时,

  

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

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

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

我无法弄清楚问题。

3 个答案:

答案 0 :(得分:0)

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

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

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

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

答案 1 :(得分:0)

尝试

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

答案 2 :(得分:0)

:(.。应用程序在建立连接后立即更改了用户本身的角色(我对此一无所知),该角色没有新创建表的权限。