![](/img/trans.png)
[英]NodeJS connecting to sql server using node-mssql does not work
[英]Can't excecute SQL query to SQL Server express from VS Code using node-mssql
我正在使用節點mssql
( https://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.