[英]Sql server authentication fails using SSMS but works when using sqlcmd
我將SQLServer 2005 Standard實例配置為混合模式很好。 使用SSMS時,似乎沒有任何SQL Server登錄名有效。 只是“用戶'..'登錄失敗”消息。 但是當我使用SQLCMD時,它工作正常。 該行為不僅限於一個特定的登錄帳戶。 通過SSMS嘗試時,所有SQL服務器登錄(包括“ sa”)都會失敗。 Windows登錄正常。
有任何想法嗎?
EDIT1:通過SQLCMD連接時,我未指定-S選項。 僅-U和-P,而在SSMS中,服務器名稱默認為計算機名稱。 在SSMS中,服務器似乎注冊為xxxxN。 當我使用Windows身份驗證進行連接時,我的@@ servername返回xxxx_N。 當我嘗試在SSMS中使用xxxx_N時,它完全無法連接。
Edit2:當我通過SQLCMD嘗試將-S選項設置為xxxxN時,它也可以正常工作。
EDIT3:
我的SQLCMD:
C:...> SQLCMD -U sa -P密碼(有效)
C:...> SQLCMD -S xxxxN -U sa -P密碼(有效)
C:...> SQLCMD -U測試-P密碼(有效)
C:...> SQLCMD -S xxxxN -U測試-P密碼(有效)
在SSMS中:
ServerType:數據庫引擎
服務器名稱:xxxxN
驗證:Windows身份驗證(有效)
ServerType:數據庫引擎
服務器名稱:xxxxN
驗證:SQL Server身份驗證
登錄名:sa
密碼:密碼(失敗)
ServerType:數據庫引擎
服務器名稱:xxxxN
驗證:SQL Server身份驗證
登錄:測試
密碼:密碼(失敗)
編輯4(答案)
使用sql帳戶的ODBC連接似乎可以正常工作。 來自遠程計算機的SSMS連接也可以正常工作。 這必須是本地SSMS安裝的問題。 我相信重新安裝會解決這個問題。
兩者之間的服務器/實例名稱不一致。
MyMachineName \\ Express
是“最常見”的實例名稱。
但是您的可能會有所不同。
由於sqlcmd“有效”。
運行sqlcmd,並將此命令傳遞給它
select [MyServerAndMaybeInstanceName] = @@servername
然后,您將知道要放入SSMS的內容! (ta!)
編輯:
您在sqlcmd中說,您給它
-U and -P
因此,您正在使用Sql身份驗證。 (而不是Windows身份驗證)
嘗試通過SSMS時是否提供Sql身份驗證憑據 ?
我看到您說“所有sql服務器登錄,包括'sa'”,因此您正在嘗試Sql身份驗證憑據。 您能驗證一下您是否嘗試過一些Sql Authentication信用認證,也許不是sa認證。
編輯:
這是一個猜測,但是很久以前我就打了一次。
In the SSMS connection box, click "Connection Properties"
Find "Network".
And pick TCP/IP as the network protocol.
特別是在機器是遠程機器的情況下。
編輯:
這是另一個窮人的考驗。
轉到控制面板/管理工具/數據源(ODBC)/系統DSN。 並嘗試在那里添加連接。
您也可以在向導中使用“客戶端配置”按鈕來使用其中的協議(命名管道與tcp / ip等)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.