SQL windows 用户拒绝了服务器批量 openrowset 访问,但 sa 没有
SQL Server bulk openrowset access is denied for windows user but not for sa
当我以 sa 用户身份登录时,我可以 运行 以下命令:
SELECT *
FROM OPENROWSET(BULK '\server1\files\test.pdf', SINGLE_BLOB) x
但是,当我以具有 sysadmin、bulkadmin 和 serveradmin 角色的 windows 用户 身份登录时,出现以下错误:
Msg 4861, Level 16, State 1, Line 1
Cannot bulk load because the file "\server1\files\test.pdf" could not be opened. Operating system error code 5(Access is denied.).
我的 Windows 用户缺少哪些权限?
sa
将 运行 OPENROWSET(BULK
作为 SQL 服务器服务帐户,它将映射到 NT SERVICE\MSSQLSERVER
等内置用户的计算机帐户或 Network Service
。 Windows 登录将 运行 OPENROWSET(BULK
作为他们自己。
我可以通过创建一个 SQL 作业来避免这个问题,该作业调用我的存储过程,其中出现批量插入脚本。当作业为 运行 时,使用 SQL 代理凭据并读取 blob。
当我以 sa 用户身份登录时,我可以 运行 以下命令:
SELECT *
FROM OPENROWSET(BULK '\server1\files\test.pdf', SINGLE_BLOB) x
但是,当我以具有 sysadmin、bulkadmin 和 serveradmin 角色的 windows 用户 身份登录时,出现以下错误:
Msg 4861, Level 16, State 1, Line 1
Cannot bulk load because the file "\server1\files\test.pdf" could not be opened. Operating system error code 5(Access is denied.).
我的 Windows 用户缺少哪些权限?
sa
将 运行 OPENROWSET(BULK
作为 SQL 服务器服务帐户,它将映射到 NT SERVICE\MSSQLSERVER
等内置用户的计算机帐户或 Network Service
。 Windows 登录将 运行 OPENROWSET(BULK
作为他们自己。
我可以通过创建一个 SQL 作业来避免这个问题,该作业调用我的存储过程,其中出现批量插入脚本。当作业为 运行 时,使用 SQL 代理凭据并读取 blob。