如何在没有提升权限的情况下将 SQLCMD 与 Windows 身份验证 (-E,) 一起使用
How can I use SQLCMD with Windows Authentication (-E,) but without elevated permissions
我将创建一个脚本来执行多个 SQL 文件。我选择使用 SQLCMD 而不是 ADODB,因为它可以快速提供日志信息,而我们正在执行 T-SQL。我正在测试 SQLCMD.exe ,然后再将其放入脚本。
使用 SQLCMD.exe 连接到数据库,我使用 -E 进行 Windows 身份验证。这意味着我需要使用我的网络帐户,该帐户在任何给定计算机上都没有提升的访问权限。但是,SQLCMD.exe 需要提升访问权限才能执行查询,否则我会收到以下错误:
Sqlcmd: Error: Error occurred while opening or operating on file (Reason: Access is denied).
在 运行 之后执行以下命令:
sqlcmd.exe -S <SQLSERVER,PORT> -d <DATABASE> -i scriptfile.sql -o scriptfile.log -E
如何使用具有提升的本地权限(管理员)的 SQLCMD.exe 但使用 Windows 身份验证连接到服务器(使用非管理员帐户)?我不希望更改 SQLCMD.exe 的任何权限,因为可能有多个人在使用此脚本,而我并不热衷于将此先前说明告知他们。
你测试的时候运行命令来自什么路径?非管理员 运行 命令是否有权读取 scriptfile.sql
和写入 scriptfile.log
?大多数命令通常默认为当前工作目录。
我将创建一个脚本来执行多个 SQL 文件。我选择使用 SQLCMD 而不是 ADODB,因为它可以快速提供日志信息,而我们正在执行 T-SQL。我正在测试 SQLCMD.exe ,然后再将其放入脚本。
使用 SQLCMD.exe 连接到数据库,我使用 -E 进行 Windows 身份验证。这意味着我需要使用我的网络帐户,该帐户在任何给定计算机上都没有提升的访问权限。但是,SQLCMD.exe 需要提升访问权限才能执行查询,否则我会收到以下错误:
Sqlcmd: Error: Error occurred while opening or operating on file (Reason: Access is denied).
在 运行 之后执行以下命令:
sqlcmd.exe -S <SQLSERVER,PORT> -d <DATABASE> -i scriptfile.sql -o scriptfile.log -E
如何使用具有提升的本地权限(管理员)的 SQLCMD.exe 但使用 Windows 身份验证连接到服务器(使用非管理员帐户)?我不希望更改 SQLCMD.exe 的任何权限,因为可能有多个人在使用此脚本,而我并不热衷于将此先前说明告知他们。
你测试的时候运行命令来自什么路径?非管理员 运行 命令是否有权读取 scriptfile.sql
和写入 scriptfile.log
?大多数命令通常默认为当前工作目录。