具有实例名称和域

时间:2016-11-26 15:49:36

标签: sql-server jdbc

我在SQL Server中创建了一个使用以下配置创建的数据库:

另外,我正在尝试连接到名为EDS的数据库。

为此,我创建了以下详细信息:

我应该在字符串中有域名还是应该在用户名中? 当我转到数据库属性时,我看到所有者有。 另外,根据图像,实例部分的URL是否正确?看起来它无法进入那个特定的实例。

此外,这是连接的配置(使用Windows Authenticaton)

当我输入用户名时,我收到以下错误日志:

  

com.microsoft.sqlserver.jdbc.SQLServerException:用户登录失败'。 ClientConnectionId:e812971f-B03C-4210-9dbd-de0791bcc304

2 个答案:

答案 0 :(得分:12)

指定SQL Server实例的位置时,通常会提供serverName\instanceName serverName:portNumber,而不是两者。那就是

jdbc:sqlserver://INNOWAVE-99\SQLEXPRESS01;databaseName=EDS

jdbc:sqlserver://localhost:1433;databaseName=EDS

(假设SQLEXPRESS01实例已显式配置为侦听端口1433,这通常不是SQL Express实例的情况)。

正如Building the Connection URL

的文档中所述
  

如果同时使用portNumber和instanceName,则portNumber优先,而instanceName将被忽略。

没有为Microsoft的SQL Server JDBC驱动程序的连接URL定义domain=属性。使用integratedSecurity=true连接属性(并且明确提供用户名和密码)隐式使用Windows域凭据登录到SQL Server实例;详情here

答案 1 :(得分:0)

我也有同样的问题。没有端口号也为我工作。 不要忘记在连接结束时输入分号。

通过使用集成身份验证连接到本地计算机上的默认数据库:

jdbc:sqlserver://localhost;integratedSecurity=true;

连接到远程服务器上的命名数据库:

jdbc:sqlserver://localhost;databaseName=AdventureWorks;integratedSecurity=true;

通过默认端口连接到远程服务器:

jdbc:sqlserver://localhost:1433;databaseName=AdventureWorks;integratedSecurity=true;

通过指定自定义的应用程序名称进行连接:

jdbc:sqlserver://localhost;databaseName=AdventureWorks;integratedSecurity=true;applicationName=MyApp;

参考链接:mssql document