我正在尝试通过JDBC连接到sql server 2005数据库。
我收到错误:
com.microsoft.sqlserver.jdbc.SQLServerException:SELECT权限 被拒绝对象'MyTable',数据库'MyDatabase',架构 'DBO'。
我用来连接的架构是“MyUser”。如何使用MyUser而不是dbo进行连接?
谢谢!
答案 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")
我希望这会对你有所帮助。