使用域用户 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?

通过***通过Windows身份验证连接到sql [关闭]

连接SQL2005出现SQL Server 无法连接到服务器 提示 服务器:消息11,级别16,状态1 怎么解决啊

如何检查页面是不是已启动或用户是不是已连接到域

无法使用 Windows 域\用户名连接到 ADAM

在 C# 中连接到 SQL Server 时出现问题