sql server 表[tablename]找不到-2147189180




sql-server vb6 (2)

我已经使用Crystal Reports XIr2创建了一个报告来报告我们应用程序的数据库信息。 这是一个交叉表报告,报告从运行存储过程返回的各种数据。

关于这个报告运行的应用程序的一小部分 - 这是一个使用VB6编写的应用程序,在加载应用程序时,系统会提示您输入用户名和密码,这些用户名和密码在SQL服务器上配置为SQL登录,因此当您登录您正在对SQL Server安全性进行身份验证的应用程序。

该报告在Crystal Reports中运行得非常好,但是当我们从客户端的应用程序中启动这个报告时,我正在遇到一些奇怪的行为。 对于具有“sa”级数据库访问权限的所有用户来说,它工作正常,但是与其他用户一样运行时会出现以下错误;

如果我作为一个用户在应用程序中直接连接到数据库服务器,手动运行存储过程没有任何错误。

如果我给了一个在SQL服务器上的应用程序'sa'权限内出错的用户,错误就会停止。

我已经检查了有问题的存储过程的所有相关的执行权限,但如前所述,如果我手动连接到SQL Server并执行过程,我没有得到上面链接的错误。

如果获取此错误的用户在此报告之前运行另一个报告,那么它将起作用,但是如果在得到此错误后运行报告,则所有报告都将停止工作并要求重新启动应用程序。

有什么想法吗?


我建议您确保报告问题的用户将数据库的用户映射的默认模式设置为dbo。 我也建议使用数据库角色。


授予执行权限并不总是在那里结束 - 有时,您将不得不检查其中的对象的可能的权限块。 当您说您使用用户的登录手动运行该过程时,还可以确定用户的凭据是用于连接到数据库的凭据吗?

也许你可以使用一个更通用的sql登录,应用程序将使用 - 这样你就不必跟踪多个用户的权限(只是一个建议:))





crystal-reports