使用域用户 ID 连接到 sql 服务器 - SQLServerException:用户登录失败
Posted
技术标签:
【中文标题】使用域用户 ID 连接到 sql 服务器 - SQLServerException:用户登录失败【英文标题】:Connect to sql server with domain user id - SQLServerException: Login failed for user 【发布时间】:2016-05-10 16:57:36 【问题描述】:我正在使用域用户帐户连接到 SQL Server 数据库,当我尝试启动我的服务器时,我收到异常 com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user error。我正在使用 sqljdbc4-1.0.jar 驱动程序。
我使用的用户 ID 是一个服务用户 ID(域用户 ID),它与我登录到 Windows 的用户 ID 不同。所以我不能使用 IntegratedSecurity 选项。我的连接网址看起来像
jdbc:sqlserver://server;authentication=SqlPassword;userName=domain\username;password=mypassword;databaseName=mydatabase;
我什至尝试单独提供用户名和密码,即使这样也没有用。我搜索了很多,但找不到任何相关的帮助。请帮忙。
【问题讨论】:
Windows 身份验证模式是与进程在其下运行的域凭据一起使用的方式:jdbc:sqlserver://server;integratedSecurity=true;databaseName=mydatabase
@Alex,正如我所提到的,我需要使用服务用户 id,并且我不希望应用程序从本地机器上获取我的用户 id,所以我不能使用 IntegratedSecurity。跨度>
【参考方案1】:
我最近在 java app(Spring Boot) 与域用户连接时遇到了同样的问题并浪费了几天时间,但我成功了,这是我的做法,希望对您有所帮助:
pom.xml:
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>net.sourceforge.jtds</groupId>
<artifactId>jtds</artifactId>
<version>1.3.1</version>
</dependency>
属性文件:
jdbc:jtds:sqlserver://host:port;databaseName=dbname;instance=SQLDEV;domain=domainname.corp;user=userdb;password=p4ssw0rd;
示例:
我的文件有太多选项,如果你不使用就删除它
spring.application.name=app-name
spring.profiles.active=dev
spring.datasource.hikari.connection-test-query=SELECT 1
spring.datasource.url=jdbc:jtds:sqlserver://100.50.50.56/MinWeb;instance=SQLDEV;domain=domainname.corp;user=userdb;password=password;
spring.datasource.test-while-idle=true
spring.datasource.validation-query=SELECT 1
spring.datasource.time-between-eviction-runs-millis=60000
spring.datasource.remove-abandoned=true
spring.datasource.driver-class-name=net.sourceforge.jtds.jdbc.Driver
spring.jpa.show-sql=false
spring.jpa.hibernate.ddl-auto=none
spring.jpa.hibernate.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.SQLServerDialect
spring.jpa.properties.hibernate.hbm2ddl.auto=none
以下是我查阅的一些链接:
Connect To SQL Server With Windows Authentication From A Linux Machine Through JDBC
Configure HikariCP in Spring Boot with JTDS
Create a jTDS connection string
T+
【讨论】:
以上是关于使用域用户 ID 连接到 sql 服务器 - SQLServerException:用户登录失败的主要内容,如果未能解决你的问题,请参考以下文章
如何从非域注册的 Linux 机器使用 SQuirreL SQL 连接到 SQL Server?