我创建了一个 SIS 日志提供程序来从 SSIS 包中的脚本任务写入日志条目。只要我使用 Windows 身份验证,连接就可以正常工作,但是如果我切换到 SQL Server 身份验证并提供用户名和密码,则不会写入日志条目。我在包中使用相同的连接来执行 SQL 任务以毫无问题地从 SSIS 日志中读取。SQL Server 用户对 SSIS 日志具有读取和写入权限。
我必须使用 SQL Server 身份验证,因为运行 SSIS 作业和包的 Windows 用户无权访问 SSIS 日志,并且无法更改。我正在使用 VS SSDT 2017 并将包部署到 SQL Server 2016。
我尝试将用户名和密码存储在包中,并通过包参数和环境提供连接字符串和密码。一旦我从 Windows 身份验证切换到 SQL Server 身份验证,就没有效果。
Dts.Log(logMessage, 0, emptyBytes);
上面的代码应该在 SSIS 日志中写入一个条目,但仅适用于 Windows 身份验证。
编辑:
SSIS 日志提供程序类型是SQL Server的 SSIS 日志提供程序。
连接管理器类型是 OLEDB,提供程序类型是Native OLE DB/SQL Server Native Client 11.0。
连接被参数化为连接字符串和密码。