2015-08-14 53 views
0

到目前爲止,我還沒有很好的使用NTLM連接到SQL Server。單調乏味地連接到SQL Azure

這是我的配置:

var config = { 
    "userName": "username", 
    "password": "password", 
    "domain": "domain" 
    "server": "server", 

    "options": { 
    "encrypt": true 
    } 
} 

我可以登錄到使用域\用戶名和密碼的服務器,但使用繁瑣的我無法驗證。我嘗試了乏味的ntlm也沒有太多的運氣。順便說一句,我甚至不需要Windows身份驗證。只要繁瑣的可以與域名交談並使用提供的用戶名進行身份驗證,我就會成爲金牌。我不明白爲什麼它不能與域進行通信。我把node.js腳本放在同一臺服務器上。

+0

此SQL Server在虛擬機或Azure SQL數據庫中嗎? Azure SQL數據庫僅支持SQL登錄。 –

+0

這是虛擬機中的SQL Server :)並且它是SQL Server 2008 R2 –

+0

嘗試使用用戶名:。\ username或machinename \ username –

回答

2

NTLM或集成安全性只能從加入到您試圖訪問的SQL Server相同(或可信)域的域中的Windows機器使用。假設你的node.js腳本運行在一個已加入域的機器上,那麼你的連接字符串(或者這種情況下的config)將用「IntegratedSecurity:true」替換userName和password值。

如果node.js腳本在沒有加入域的計算機上運行,​​則不能使用集成安全性。您需要像上面一樣使用SQL Auth。如果這不起作用,請檢查您是否具有SQL Server登錄以及映射到該登錄的數據庫用戶,並擁有對連接字符串中列出的數據庫的訪問權限。

希望有所幫助。