我的服务器团队将数据库连接驱动程序从jTDS JDBC(net.sourceforge.jtds.jdbc.Driver)升级到了Microsoft JDBC(com.microsoft.sqlserver.jdbc.SQLServerDriver),此后一直遇到登录和身份验证问题。 / p>
这是Windows操作系统,运行Microsoft SQL Server Express(64位)的Microsoft Windows NT 6.3(9600)。数据库连接池由Hikari CP管理。
我正在尝试使用域(QA-LAB)用户登录。
出于某种原因,数据库连接驱动程序使用运行我的服务器的本地用户登录并验证数据库。
在向用户(db_owner)添加凭据后,登录和身份验证成功完成。本地用户和域用户绑定到数据库连接。
这是我的数据库配置:
<dbUrl>jdbc:sqlserver://localhost:1433;databaseName=myDB;user=QA-LAB\Administrator;password=crypt:xxxxxxx;useCursorsAlways=true;IntegratedSecurity=true</dbUrl>
<dbUser>QA-LAB\Administrator</dbUser>
<dbPassword>xxxxxxx</dbPassword>
<dbType>mssql</dbType>
<dbCPType>HikariCP</dbCPType>
<dbEncoding>utf-8</dbEncoding>
<dbMultiply>false</dbMultiply>
<dbMainName>ilient</dbMainName>
<dbPoolSettings>
<dbPoolMaxConn>100</dbPoolMaxConn>
<dbPoolIdleTimeout>360</dbPoolIdleTimeout>
<dbPoolCheckoutTimeout>100</dbPoolCheckoutTimeout>
<dbPoolMaxCheckout>100</dbPoolMaxCheckout>
</dbPoolSettings>
</dbConf>
以下是配置的用法:
HikariConfig hikariConfig = new HikariConfig(GlobalPaths.getPath(null,confFilePath, true, false));
hikariConfig.setJdbcUrl(conf.getDbUrl());
hikariConfig.setDriverClassName(conf.getDbDriver());
hikariConfig.setUsername(conf.getDbUser());
hikariConfig.setPassword(DesEncrypter.decryptStr(conf.getDbPassword()));
hikariConfig.setPoolName("DBPool");
hikariConfig.setRegisterMbeans(true);
hikariConfig.setAllowPoolSuspension(true);
hikariConfig.setAutoCommit(true);
我得到了例外:
com.zaxxer.hikari.pool.HikariPool $ PoolInitializationException:无法初始化池:无法打开登录请求的数据库“ myDB”。登录失败。 ClientConnectionId:8940142d-2900-47db-8f70-d71adffada71 在com.zaxxer.hikari.pool.HikariPool.throwPoolInitializationException(HikariPool.java:576) 在com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:562) 在com.zaxxer.hikari.pool.HikariPool。(HikariPool.java:115) 在com.zaxxer.hikari.HikariDataSource。(HikariDataSource.java:81) 在com.ilient.sql.HikariConnectionPool.loadProperties(未知来源) 新的HikariDataSource(hikariConfig);