[英]SQL Server login works in a connection string, but fails in DSN
我有一個網站,我正在嘗試設置DSN而不是使用連接字符串,因為它似乎更安全。
以下連接字符串在我的網站上可以正常運行:
"Server=servername; database=mydb; user id= web.account; password=PassW0rd!; Integrated Security=SSPI"
但是,當我嘗試設置DSN( 使用64位odbc admin )時,出現以下錯誤:
Connection failed:
SQLState: '28000'
SQL Server Error: 18456
[Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'web.account'
請記住,我使用與連接字符串中相同的帳戶和密碼(有效)。 這也很奇怪,因為在我單擊“ SQL Server應如何驗證登錄ID的真實性?”上的“下一步”后立即發生錯誤。 頁。
似乎odbc管理員甚至沒有嘗試連接到服務器來驗證憑據。 我可以檢查些什么來證明這一點/如何解決?
我嘗試過的事情:
更新1 :DBA剛剛告訴我,web.account實際上是Windows帳戶,而不是SQL帳戶。 我想這就是odbc無法正常工作的原因,因為它不會嘗試以其他Windows用戶身份(僅以當前Windows用戶身份)進行連接。 所以現在的問題是,如何用其他Windows帳戶設置DSN? 還是有可能嗎?
這篇帖子的回應是,使用NT身份驗證的DSN設置專門針對整個系統,而不是特定帳戶,因此可以從cmd使用runas命令,如下所示:
Runas / netonly /user:domain\\web.account“ C:\\ Windows \\ SysWOW64 \\ odbcad.exe”
然后它將要求您提供web.account密碼。 然后,您可以創建一個DSN,這應該可以工作。
更新:我必須使用此方法將web.account用戶添加到管理組中 。 然后,我必須運行cmd作為我的提升帳戶。 然后運行上面顯示的runas命令。 然后,我終於能夠創建一個非本地的DSN,這使我能夠以其他Windows用戶身份連接到數據服務器。
仍在等待DBA檢查日志以說這是否確實有效,但是我對此感覺很好。 確認后將更新。
請嘗試以下操作:
Data Source=servername;Initial Catalog=mydn;Persist Security Info=True;User ID=web.account;Password=Passw0rd
這就是我用來連接的東西。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.