我正在设置 CI。我用詹金斯管道设置它。我需要在 ms sql 中运行 sql 脚本。为此,我使用了 sqlcmd 命令,我在 jenkinsfile 中编写了该命令。这就是 bat 命令的样子
sqlcmd -e -S \"someserver\" -i \"D:\\somefile.sql\" -E
在此命令中,-E 表示您需要使用 windows 身份验证登录到 sql server,因为我在服务器上运行它应该可以工作(但是当我在本地测试时),这是必要的,以免存储来自存储库中的数据库( jenkinsfile 在存储库中)。当我在 jenkins 中运行构建时,我收到了这条消息
服务器主体“CS\xxxxxxxx$”无法在当前安全上下文下访问数据库“xxxx”。
据我了解,通过詹金斯,我无法使用 Windows 身份验证,即如果您通过命令行运行此命令,则执行我的 sql 脚本。
这个问题我早就解决了,分享一下解决方法。Jenkins 作为 Windows 服务运行,因此您需要为其授予有权访问数据库的用户的权限,然后您可以使用 Windows 身份验证。我希望这可以帮助别人)