我正在尝试设置要从服务代理队列运行的CLR存储过程,以便CLR存储过程作为数据库所有者运行。
我已经尝试了各种组合,但如果没有以CLR存储过程中的用户(使用用户名和密码)身份登录,则无法使其正常工作。
CLR存储过程正在访问文件系统,我只希望它能够访问拥有该数据库的Windows用户所允许的文件夹。
答案 0 :(得分:1)
如果不向Windows提供密码,您将永远无法访问SQL Server外部的资源。 EXECUTE AS仅在引擎内部受信任,Windows(因此文件系统)完全没有理由相信这种假冒假冒。
SQL中有一个特殊的构造可以在os级别上进行模拟:CREATE CREDENTIAL
,但它们仅在将SQL登录映射到Windows登录时才起作用。因为在您的情况下,没有SQL登录开始,我不确定您是否可以获得SQL Server凭据。