Javascript 无法连接到:未定义-在应用程序中的Windows身份验证上连接到MSSQL服务器时自签名证书

Javascript 无法连接到:未定义-在应用程序中的Windows身份验证上连接到MSSQL服务器时自签名证书,javascript,node.js,sql-server,typescript,electron,Javascript,Node.js,Sql Server,Typescript,Electron,我正在尝试通过Electron应用程序中的Windows身份验证连接到MSSQL数据库 我使用软件包: msnodesqlv8 2.1.0 mssql 7.0.0 因此,当连接池时,将显示以下内容: “SqlQuery”的处理程序中出错:ConnectionError:未能连接到:未定义-自签名证书 我的配置代码: import { IResult, config } from "mssql"; const connectionSettings: config =

我正在尝试通过Electron应用程序中的Windows身份验证连接到MSSQL数据库

我使用软件包: msnodesqlv8 2.1.0 mssql 7.0.0

因此,当连接池时,将显示以下内容: “SqlQuery”的处理程序中出错:ConnectionError:未能连接到:未定义-自签名证书

我的配置代码:

import { IResult, config } from "mssql";

    const connectionSettings: config = {
        server: "my_server_name",
        port: 1443,
        driver: "msnodesqlv8",
        options: {
            trustedConnection: true,
            connectionString: "Data Source=my_server_name;database=my_database;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"
        }
    };
我的连接代码:

import { ConnectionPool, IResult, config } from "mssql";

public SqlQuery(poolOptions: config, query: string)
    : Promise<IResult<any>> {
    return new Promise((resolve, reject) => {
        console.log(poolOptions);
        const pool = new ConnectionPool({
            ...poolOptions
        });

        pool.connect()
            .then(() => {
                console.log("CONNECT");
                return pool.query(query);
            })
            .then(values => {
                console.log(values);
                return resolve(values);
            })
            .catch(reason => {
                reject(reason);
            });
    });
从“mssql”导入{ConnectionPool,IResult,config};
公共SqlQuery(池选项:配置,查询:字符串)
:承诺{
返回新承诺((解决、拒绝)=>{
log(池选项);
const pool=新连接池({
…共同选择
});
pool.connect()
.然后(()=>{
控制台日志(“连接”);
返回池查询(query);
})
。然后(值=>{
console.log(值);
返回解析(值);
})
.catch(原因=>{
拒绝(理由);
});
});

如果数据库服务器配置了自签名证书,则需要指定
TrustServerCertificate=True
。默认情况下,SQL server安装程序会创建一个自签名的X.509证书并将其分配给实例。您有三个选择:1.使用Dan Guzman提到的
TrustServerCertificate=True
;2.登录对于运行SQL实例的Windows服务器,将其X.509证书的公钥导出到文件中,并将其导入客户端计算机的受信任证书/根存储;3.从CA(或您的组织)获取(受信任的)X.509证书并通过SQL Server配置管理器将其分配给SQL实例。@AlwaysLearning@DanGuzman不幸的是,当我使用
trustServerCertificate=true
时,我得到错误:
错误:登录用户“”时发生错误。
可能很重要,但我在应用程序中使用此代码。