SQL 服务器始终加密的数据库插入在使用用户帐户登录时有效,但在 运行 通过代理用户登录时无效

SQL Server always encrypted database insert is working when logged on with user account but not when running through a proxy user

我们有一个 SSIS 程序包,可以访问使用 Always Encrypted 加密的数据库列。

这在使用代理用户通过 SQL 作业触发 SSIS 包时不起作用。

Failed to decrypt a column encryption key using key store provider 'mssql_certificate_store'

我们已尝试以域用户身份登录服务器并手动触发 SSIS 程序包,但没有收到此错误。因此,当代理用户激活 ssis 包时,访问证书似乎存在一些问题。

代理用户设置代码:

CREATE CREDENTIAL [SSIS Credential] 
    WITH IDENTITY = N'DOMAIN\service_ssis_user', SECRET = N'DomainPassword'

IF NOT EXISTS (SELECT name FROM sysproxies WHERE name = 'SSIS Package')
BEGIN
    EXEC msdb.dbo.sp_add_proxy 
              @proxy_name = N'SSIS Package',
              @credential_name = N'SSIS Credential', @enabled = 1

    EXEC msdb.dbo.sp_grant_proxy_to_subsystem 
              @proxy_name = N'SSIS Package', @subsystem_id = 11

    EXEC msdb.dbo.sp_grant_login_to_proxy 
              @proxy_name = N'SSIS Package', 
              @login_name = N'DOMAIN\service_ssis_user'
END
GO

目标是获取 SSIS 包 运行ning 作为域用户并能够访问与该用户关联的证书

更新:

代理用户不 "login" 作为我为其创建凭据的用户,它只是使用用户的安全上下文来 运行 命令。因此它不会加载他们的 windows 用户配置文件,这在以域用户身份直接登录时会发生。因此,当通过代理 运行ning 时,无法访问证书。但是我不知道如何解决这个问题。

Windows 使用代理帐户时未加载用户配置文件。因此,当 运行 通过代理时,无法访问与用户关联的证书。