我正在尝试通过JDBC连接到sql server 2005数据库 .
我收到错误:
com.microsoft.sqlserver.jdbc.SQLServerException:对象'MyTable',数据库'MyDatabase',架构'dbo'上的SELECT权限被拒绝 .
我用来连接的模式是“MyUser” . 如何使用MyUser而不是dbo进行连接?
谢谢!
要清理:使用 user 连接到SQL Server,而不是 schema . 你没有't say what version of SQL Server you'重新连接,但过去两者是相同的 . 截至2005年,that is no longer true .
user
schema
dbo 是默认模式(将其视为命名空间);错误信息告诉你的是 user 你正在连接(如果我理解正确,那是MyUser)没有来自MyTable表 SELECT 的权限,这是dbo架构 in 的MyDatabase数据库的 part .
dbo
SELECT
首先要确认您正在连接的用户是否对该表具有SELECT权限 . 要做的第二件事是,如果没有,要么为MyUser提供权限,要么使用其他用户来执行SELECT语句 .
我发现你必须在 POJOS 定义中指定你的模式 .
在我的情况下,我在使用JPA(实体/注释)时遇到了同样的问题,我意识到在 @Table 注释中指定schema属性是有效的 .
@Table
例如:
@Table(name = "address", **schema="*dbo*"**, catalog = "petcatalog")
我希望这可以帮助你 .
2 回答
要清理:使用
user
连接到SQL Server,而不是schema
. 你没有't say what version of SQL Server you'重新连接,但过去两者是相同的 . 截至2005年,that is no longer true .dbo
是默认模式(将其视为命名空间);错误信息告诉你的是 user 你正在连接(如果我理解正确,那是MyUser)没有来自MyTable表SELECT
的权限,这是dbo架构 in 的MyDatabase数据库的 part .首先要确认您正在连接的用户是否对该表具有SELECT权限 . 要做的第二件事是,如果没有,要么为MyUser提供权限,要么使用其他用户来执行SELECT语句 .
我发现你必须在 POJOS 定义中指定你的模式 .
在我的情况下,我在使用JPA(实体/注释)时遇到了同样的问题,我意识到在
@Table
注释中指定schema属性是有效的 .例如:
我希望这可以帮助你 .