Sqlcmd出错:Microsoft ODBC Driver 11 for SQL Server错误:用户'sa'登录失败。

3

我正在尝试通过Perl脚本使用'sa'用户执行一个存储过程

将这行代码保存在Perl文件中并执行该Perl文件

system("start /wait sqlcmd.exe -S serverName -U sa -P test@123 -d JSONdb -Q \"EXECUTE UPDATE_SP\" -o C:\\Temp\\log.txt");

=============================================================================

-S serverName :: 要连接的 SQL 服务器。

-U sa -P test@123 :: 登录用户凭据。

-d JSONdb :: 数据库名称。

\"EXECUTE update_JSONTable\" :: 执行存储过程 [update_JSONTable] 的命令。

-o C:\Temp\log.txt" :: 保存日志。

1个回答

4

可能有三个原因:

  1. 禁用了SQL Server(或混合)身份验证
  2. 命令中使用的密码不正确
  3. 数据库 [JSONdb] 不可用

另一个原因可能与特殊字符转义有关。您的密码包含@,因此还需要调整该参数:

 -P test@123 =>  -P test\@123

已检查所有这些点,数据库中都是正确的。仍然遇到相同的问题。 - jit
@jit,您可以使用SSMS和完全相同的凭据登录到该服务器吗? - Alexander Volok
是的,我可以使用我拥有的凭据通过SSMS登录。但是当我通过Perl脚本运行时,它失败了。 - jit
那么问题就在于密码,似乎是因为字符“@”。我已经更新了答案。 - Alexander Volok

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接