我已经使用mssql
包构建了一个nodejs应用程序,该程序包可以使用Windows和SQL Server身份验证连接到SQL Server。
对于Windows身份验证,我的配置是:
let config = {
driver: 'msnodesqlv8',connectionString: 'Driver={SQL Server Native Client 11.0};Server={localhost\\DB};Database={DB_Dev};Trusted_Connection={yes};'
};
对于SQL Server身份验证,我正在使用:
const config = {
user: 'MyUser',password: 'User12345',server: 'MyServer',// You can use 'localhost\\instance' to connect to named instance
database: 'DB_DEV',// driver:'msnodesqlv8',pool: {
max: 10,min: 5,idleTimeoutMillis: 30000
},options:{
encrypt:false,instanceName:'DB_DEV'
},// port:57909,enableArithAbort:false
}
连接:
let connection = new sql.ConnectionPool(config).connect()
.then(query => { return query } )
.catch(e => console.error("Database Trouble! ",e))
我已经能够成功使用两种连接方法,但只能单独使用。也就是说,我一直在使用SQL Sever连接或Windows连接。现在,我想将两者结合起来。
如果Windows身份验证失败,那么并且只有这样,我才想尝试SQL Server身份验证。什么是做到这一点的好方法?我不想将应用程序所在的SQL Server连接延迟尝试失败几秒钟,然后尝试使用Windows身份验证进行连接。