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