Azure-Sql-Database

SQLCMD:SQL Azure 上的“使用者登錄失敗”,但它適用於 SSMS

  • February 9, 2022

我有一個 SQL Azure 數據庫,我可以使用 SQL Server Management Studio 連接到它。連接時會顯示

myServer.database.windows.net (SQL Server 12.0.2000.8 - myUser)

但是,當我在同一台機器上使用 SQLCMD 實用程序時,針對同一個 SQL Azure 伺服器,使用相同的憑據,它總是回答

Sqlcmd: Error: Microsoft ODBC Driver 11 for SQL Server : Login failed for user 'myUser'

我使用的語法是

sqlcmd -S tcp:myServer.database.windows.net -U myUser@myServer -P "myPassword"

我嘗試了我能想到的一切:

  • 添加了埠:myServer.database.windows.net,1433
  • 刪除了tcp:協議
  • 用雙引號將使用者括起來,如密碼
  • 嘗試了 -I 和 -C 命令行選項
  • 以上的組合。

錯誤總是一樣的。

是否必須啟動某些特定標誌才能使 SQLCMD 與 SQL Azure 一起使用?還有其他想法嗎?

該錯誤是 Powershell 的一些編碼問題。我想 Powershell 沒有正確讀取密碼的特殊字元。

cmd.exe,它完美地工作。

在命令中添加-G參數:

sqlcmd -S tcp:myServer.database.windows.net -U myUser@myServer -P "myPassword" -G

引用自:https://dba.stackexchange.com/questions/145850