RequestError:对远程服务器的访问被拒绝,因为不存在登录映射

时间:2019-07-26 15:03:08

标签: node.js sql-server

使用Windows身份验证using this连接到SQL Server数据库,其中说要添加选项; “ trustedConnection:true”。使用以下代码,我已经能够在过去三个月中成功查询数据库,没有任何问题。

const configMssql = 
{
    "server": "(servername)",
    "driver": "msnodesqlv8",
    "database": "Service",
    "options": {
        "trustedConnection": true
    },
    "connectionTimeout": 300000,
    "requestTimeout": 300000,
    "pool": {
        "idleTimeoutMillis": 300000,
        "max": 100
    }
}

var conn = new sql.ConnectionPool(configMssql);
    conn.connect().then(() => {
    // query...
    }.catch((err) => {
        console.log(err);
    });

但是,今天,当我运行我的代码(未更改)时,出现此错误:

{ RequestError: Access to the remote server is denied because no login-mapping exists.
    at StreamEvents.req.once.err (C:\Users\pa\Documents\Work\spares_list_generator\node_modules\mssql\lib\msnodesqlv8.js:612:17)
    at Object.onceWrapper (events.js:277:13)
    at StreamEvents.emit (events.js:189:13)
    at errors.forEach.err (C:\Users\pa\Documents\Work\spares_list_generator\node_modules\msnodesqlv8\lib\reader.js:30:20)
    at Array.forEach (<anonymous>)
    at routeStatementError (C:\Users\pa\Documents\Work\spares_list_generator\node_modules\msnodesqlv8\lib\reader.js:23:14)
    at invokeObject.end (C:\Users\pa\Documents\Work\spares_list_generator\node_modules\msnodesqlv8\lib\reader.js:244:13)
    at freeStatement (C:\Users\pa\Documents\Work\spares_list_generator\node_modules\msnodesqlv8\lib\driver.js:157:13)
    at cppDriver.freeStatement (C:\Users\pa\Documents\Work\spares_list_generator\node_modules\msnodesqlv8\lib\driver.js:147:11)
  code: 'EREQUEST',
  number: 7416,
  state: undefined,
  originalError:
   { Error: [Microsoft][SQL Server Native Client 11.0][SQL Server]Access to the remote server is denied because no login-mapping exists. sqlstate: '42000', code: 7416 },
  name: 'RequestError' }

因此,我进入Microsoft SQL Server Management Studio以手动执行此查询,以确保问题不在数据库中,并且很好,它可以正常工作。在SQL Server Management Studio中,我也使用Windows身份验证。因此,问题出在代码上。因此,我查找了问题并遇到了this。连接到数据库的脚本将由多个用户使用,这就是为什么我使用Windows身份验证的原因。

我尝试使用我的用户名进行尝试,只是为了查看它是否有效,但出现相同的错误。我使用不正确吗? (请参见下面的代码)

const configMssql = 
{
    "server": "TXUDBSAZU002",
    "User ID":"myuser",
    "driver": "msnodesqlv8",
    "database": "TRU_Service",
    "options": {
        "trustedConnection": true
    },
    "connectionTimeout": 300000,
    "requestTimeout": 300000,
    "pool": {
        "idleTimeoutMillis": 300000,
        "max": 100
    }
}

但是,如果此解决方案有效,则必须输入用户名,这不是我想要的。还有什么我可以尝试的想法吗?

0 个答案:

没有答案
相关问题