如何使用命令提示符连接到 Azure SQL 服务器?

How to connect to an Azure SQL Server using command prompt?

我有一个 Azure SQL 数据库,我可以使用本地 SSMS 连接它。

Server Name - <Server>.database.windows.net
UserName - zrana
Password - *****

我这里使用的认证方式是Active Directory - Password。是否可以在命令行上使用 sqlcmd 实用程序连接到数据库?

我无法使用以下命令连接

sqlcmd -S 910005-sql.database.windows.net -d 900046 -U zrana -P ****

我在 Azure 上创建了另一个数据库并尝试通过本地 SSMS 连接。

这次的认证方式是"SQL Server password"。我可以使用本地 SSMS 连接到它,并使用上述相同的格式通过 sqlcmd 连接到它。

是否可以使用 AAD 连接到 Azure SQL 数据库?我尝试在我的命令中使用 -G -I 选项但没有用。

这是我看到的错误:

当您想使用Azure Active Directory 用户名和密码时,您需要提供-G 选项,并通过提供-U 和-P 选项来使用用户名和密码。在 -U 选项上,请参阅我的示例,您需要提供用户名@域,

使用 -G 选项连接到 SQL 数据库或 SQL 数据仓库并使用 Azure Active Directory 进行身份验证时,建议超时值至少为 30 秒。使用“-l 30”。在 this 文档中阅读更多相关信息。

请看下面的例子:

sqlcmd -S Target_DB_or_DW.testsrv.database.windows.net -G -U bob@contoso.com -P MyAADPassword -l 30

(添加一个基本上是我们在评论中完成的过程的答案)

  1. https://docs.microsoft.com/en-us/sql/tools/sqlcmd-utility?view=sql-server-ver15
  2. 安装最新的 sqlcmd
  3. 运行 sqlcmd -? 查看实际的 sqlcmd 版本 运行ning - 如果它不是您刚刚下载的最新版本,请检查您的 PATH 变量等。您可以使用dos命令where sqlcmd找到命令行搜索sqlcmd
  4. 的地方
  5. 运行 带有 -G 开关的 sqlcmd 指定 AAD 信用检查,并使用 -U 和 -P 选项包含您的用户名和 dpassword。请注意这些情况,因为 -u 和 -p 是完全不同的开关。
sqlcmd -S 910005-sql.database.windows.net -d 900046 -G -U zrana -P ****