一尘不染

Java / MSSQL:java.sql.SQLException无效的对象名称“ TableName”

tomcat

我正在尝试将Java应用程序从旧服务器移动到新服务器。该应用程序在Tomcat上运行,使用Microsoft SQL
Server作为后端数据库,并使用在数据源(ODBC)中定义的系统DSN来确定连接到的位置。旧服务器使用Windows 2000 / SQL Server
2000,新服务器使用Windows 2003 / SQL Server 2005。

服务器之间的ODBC定义相同,并且定义了要使用的数据库。

在新服务器上,当用户尝试登录时,stdout.log中将显示以下内容:

正在检查用户 错误:java.sql.SQLException:[Microsoft] [ODBC SQL Server驱动程序] [SQL
Server]对象名称’UserTable’无效。

DB中确实存在一个名为 UserTable 的表,但通过管理界面显示为“ dbo.USerTable ”。

我应该调整一下MSSQL中的某个设置,以使其对“ dbo”感到满意。缺少前缀,或者还有其他我想念的东西?

[编辑]使用Windows身份验证,并且作为故障排除步骤,已将公共角色和来宾角色赋予数据库所有权限。


阅读 348

收藏
2020-06-16

共1个答案

一尘不染

数据库登录是否不同?dbo“前缀”只是对象所定义的架构。因此,如果您的ODBC连接器使用dbo凭据登录,则该对象应位于其默认架构中。

2020-06-16