JDBC更改默认架构

时间:2010-09-08 15:30:28

标签: java sql-server jdbc schema

我正在尝试通过JDBC连接到sql server 2005数据库。

我收到错误:

  

com.microsoft.sqlserver.jdbc.SQLServerException:SELECT权限   被拒绝对象'MyTable',数据库'MyDatabase',架构   'DBO'。

我用来连接的架构是“MyUser”。如何使用MyUser而不是dbo进行连接?

谢谢!

2 个答案:

答案 0 :(得分:1)

要清理:使用user连接到SQL Server,而不是schema。您没有说出要连接的SQL Server的版本,但过去两者都是等效的。截至2005年,that is no longer true

dbo是默认架构(将其视为命名空间);错误消息告诉您的是您正在连接的用户(如果我理解正确,那是 MyUser )没有SELECT的权限来自< em> MyTable 表, dD 架构的部分 MyDatabase 数据库。< / p>

要做的第一件事是确认您正在连接的用户是否对该表具有SELECT权限。要做的第二件事是,如果没有,要么为MyUser授予权限,要么使用其他用户来执行SELECT语句。

答案 1 :(得分:-1)

我发现您必须在 POJOS 定义中指定架构。

在我的情况下,我在使用JPA(实体/注释)时遇到了同样的问题,我意识到在@Table注释中指定schema属性是有效的。

例如:

@Table(name = "address", **schema="*dbo*"**, catalog = "petcatalog")

我希望这会对你有所帮助。