簡體   English   中英

使用SSMS的SQL Server身份驗證失敗,但在使用sqlcmd時有效

[英]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.

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