MS SQL无法连接JDBC …权限问题?

我使用“sa”创build一个用户“secure1”,我可以使用Management Studio在本地和远程连接为secure1。

当我然后切换到JDBC的URL(我在下面的url中使用了两个\,但stackexchange剥离了其他斜线,因为Java看到\作为转义序列)

jdbc:sqlserver://192.168.111.111 \ MYDBQA:1433; Initial Catalog = mydatabase

我刚刚得到一个login被拒绝。 如果我删除初始目录,我得到login被拒绝。 除了已经拥有的公众以外,我还给了我的secure1用户sysadmin服务器angular色。

目前,在用户映射'mydatabase'我给了他除了db_deny **以外的所有权限。 我也把他添加到master,model,msdb,tempdb中,并且标记除db_den之外的所有权限,尽pipe这也不起作用。

我更重要的问题,所以我可以先得到一些东西….

  1. 如何得到这个工作,或者是否有一个关于为某个JDBC连接设置MS SQL的文档?

然后,让它好一点….

  1. 如何正确设置它,以便我的用户可以读/写/创build/更新'mydatabase'中的所有表,但不能在任何其他数据库中进行任何操作。

注意:我可以通过JDBC连接到“sa”用户。

谢谢,Dean

院长,

几件事情。

  1. 撤消您对其他数据库所做的所有权限更改,不需要这些更改。 更好的是,删除您创build的用户,然后删除所有其他权限更改。
  2. 重新创build你的用户,不要给他们任何服务器angular色只是创build用户。
  3. 在“用户映射”部分中,将myDatabase分配给它并授予db_owner权限。 (完全控制这个数据库)
  4. 确保您在SQL Serverconfiguration工具中启用了TCP / IP协议。

现在就试试。

更新:

您的连接string是错误的。 看起来您使用的是SQL Server的命名实例,并且命名的实例不使用默认的端口号。 它很好,你有SQL浏览器服务运行,但你的连接string应该看起来更像这样:

jdbc:sqlserver://serverName;instanceName=instance1;integratedSecurity=true;<more properties as required>;