簡體   English   中英

無法使用 node-mssql 從 VS Code 執行 SQL 查詢到 SQL Server express

[英]Can't excecute SQL query to SQL Server express from VS Code using node-mssql

我正在使用節點mssqlhttps://www.npmjs.com/package/mssql/v/9.0.1 )在 Visual Studio Code 中執行 SQL 語句以從 Z9778840A0100CB30C928 Server 本地主機數據庫中獲取數據。 但是,每次執行代碼時,都會出現以下錯誤:

用戶“xx”登錄失敗。 原因:密碼與提供的登錄名不匹配。 [客戶:127.0.0.1]
錯誤:18456,嚴重性:14,State:8。

我已經在 SQL 服務器屬性 -> 安全性中啟用了混合服務器身份驗證(Windows 和 SQL 服務器身份驗證模式),並按照其他帖子中的建議多次重新啟動服務。

我嘗試創建的用戶在登錄屬性中設置為 SQL 服務器身份驗證,授予連接權限並啟用登錄。 此外,他們對相關數據庫擁有所有者權限。

我不明白為什么會收到密碼錯誤,因為我確信我為我嘗試連接的用戶提供了正確的密碼和用戶名。

這是我的代碼

const sql = require("mssql");

const config = {
    server: "localhost",
    port: 1433,
    user: "xx",
    passwword: "xxx",
    database: "SQL_tutorial",
    options: {
        enableArithAbort: true,
        trustServerCertificate: true,
        encrypt: false,
        TRUSTED_CONNECTION: true,
    },
    connectionTimeout: 150000,
    pool: {
        max: 10,
        min: 0,
        idleTimeoutMillis: 30000,
    },
};

sql.on('error', err => {
    console.log(err.message)
})

async function getData(){
    try {
        let pool = await sql.connect(config)
        let result1= await pool.request().query("select * from Employeedemographics");
        console.log(result1);
        sql.close();
    } catch (error) {
        console.log(error.message);
        sql.close();
    }
}

getData();

知道如何解決這個問題或問題可能是什么?

我看到了這兩個:

user: "xx",
passwword: "xxx",

和這個:

TRUSTED_CONNECTION: true,

那是不對的。

Trusted_Connection 與集成安全性相同。 這意味着在您首次登錄計算機時使用授予您的 Windows 用戶帳戶的身份驗證令牌(或者,如果您的應用程序作為服務或計划任務運行,則在進程啟動時為運行服務的用戶帳戶頒發的任何令牌創建)。 設置用戶名/密碼意味着使用 SQL 服務器中定義的 sql 登錄。 您不能同時使用用戶名和密碼以及 TRUSTED_CONNECTION。 它是一個或另一個。

但我也看到了這個:

我嘗試創建的用戶在登錄屬性中設置為 SQL 服務器身份驗證,授予連接權限並啟用登錄。

因此,您應該從選項中刪除TRUSTED_CONNECTION條目。

如果這仍然不起作用,根據錯誤消息,我會雙重和三次檢查提供的密碼......甚至可能設置一個不同的密碼。 還要檢查他們是否仍被標記為需要在首次登錄時更改密碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM