Java SQL Server 2012无法打开数据库错误

我似乎遇到了错误: Cannot open database requested by the login. The login failed. Cannot open database requested by the login. The login failed. 将我的SQL Server数据库连接到用netbeans编写的Java应用程序时。

我读了很多文章并做了以下工作:

  • 在UDP和TCP下允许1433端口到防火墙

  • 将SQL Server配置管理器TCP / IP端口设置为1433

  • 将SQL Server Management Studio中的服务器身份validation更改为混合身份validation

  • SQL Server Management Studio中允许的远程连接

我的连接字符串如下:

 jdbc:sqlserver://localhost\\SQLEXPRESS:1433;DatabaseName = SASS; IntegratedSecurity=true; Trusted_Connection=true; 

我仍然收到以下错误:

 Cannot open database "SASS" requested by the login. The login failed. ClientConnectionId:894b97b9-54d6-47cc-afd7-1473a460c09d 

经过3天的连续阅读,我的智慧结束了。

我好像已经知道发生了什么事。 我已经改变了我的电脑设置并更新了很多东西,我一定是在打破了一些东西。

以下是我在其他人遇到Java连接问题时已经解决的一组说明。 这是在新安装的机器上完成的:

将SQL Server数据库(2008或2012)连接到Java Netbeans应用程序:

  1. 安装SQL Server Management Studio 2008或2012
  2. 安装SQL Server a。 将服务器实例命名为SQLExpress / SQLEXPRESS b。 确保服务器接受混合的身份validation方法(SQL Server和Windows身份validation模式)c。 向系统管理员提供密码:admin
  3. 安装最新的JRE和JDK
  4. 安装Netbeans
  5. 在SQL Server Management Studio中创建测试数据库以便稍后进行测试
  6. 更新防火墙以接受TCP和UDP的传入和传出端口1434
  7. 打开SQL Server配置管理器

    一个。 停止SQL Server(SQLEXPRESS)和SQL Server Browser服务

    湾 在SQL Server网络配置下打开SQLEXPRESS的协议并启用TCP / IP

    C。 启用所有端口(ESPECIALLY IPAll)并将端口设置为1434

    d。 再次启用服务(尤其是SQL Server Browser)

  8. 将sqljdbc_4.0.2206.100_enu解压缩到C:\驱动器
  9. 从C:\ Microsoft JDBC驱动程序4.0复制并粘贴DLL文件,用于SQL Server \ sqljdbc_4.0 \ enu \ auth \ x86或C:\ Microsoft JDBC驱动程序4.0,用于SQL Server \ sqljdbc_4.0 \ enu \ auth \ x64(取决于关于你是在运行64位Java安装还是32位 – 不要复制两种方式。
  10. 将DLL文件复制并粘贴到C:\ Program Files \ Java \ jdk1.8.0_05 \ bin中
  11. 将sqljdbc驱动程序添加到Java Netbeans应用程序

    一个。 将sqljdbc驱动程序添加到应用程序库(右键单击添加)

    湾 在“服务”选项卡下,展开“数据库”,然后右键单击“驱动程序”

    C。 将sqljdbc4驱动程序添加到服务中(右键单击新驱动程序…)

    d。 确保连接字符串类似于:jdbc:sqlserver:// localhost \ SQLEXPRESS; database = [数据库名称]; integratedSecurity = true; 其中localhost \ SQLEXPRESS更改为您正在运行数据库的服务器

您的连接字符串表示您正在通过可信连接使用集成安全性。 这意味着,运行调用数据库的进程的任何用户都必须能够访问SQL Server和您的个人数据库。 我建议您在SQL中使用带有命名用户的混合身份validation。 在MSDN SQL Server 2012文档中阅读有关它的更多信息:

创建一个登录

创建数据库用户

然后你可以创建一个这样的连接字符串:

 Server=myServerName\myInstanceName;Database=myDataBase;User Id=myUsername;Password=myPassword; 

SQL Server连接字符串