如何查找SSIS包连接字符串中使用的Windows认证对应的实际用户?
SSIS 集成Windows认证连接实际身份查询方法
- 查看SQL Server代理作业配置:如果包是通过SQL Server代理作业定时触发运行的,默认使用SQL Server代理服务的启动账号;如果作业步骤单独配置了「运行身份」的代理账户,实际认证身份就是该代理对应的Windows账号。
- 查看SSISDB执行日志:如果包部署在SSIS Catalog(SSISDB)中,可查询
internal.executions视图的caller_name字段,该字段记录了触发包运行的身份,也就是integrated security=true时使用的认证账号;也可以直接在SSMS中查看对应包的「执行报告」,报告中会直接展示调用者账号信息。 - 从目标数据源侧查询连接身份:以目标是SQL Server数据库为例,可在目标实例执行如下查询,过滤SSIS相关连接的登录账号:
SELECT session_id, login_name, host_name, program_name FROM sys.dm_exec_sessions WHERE program_name LIKE '%SSIS%'
返回结果中的login_name就是SSIS连接数据库时实际使用的Windows认证身份。
- 查看SSIS运行进程的启动身份:如果包是通过
DTExec命令行、手动执行、第三方调度工具触发运行的,可以打开任务管理器找到对应的DTExec.exe进程,查看「详细信息」页的「用户名」列,该用户名就是集成认证实际使用的身份。
补充说明:
integrated security=true(等价写法Integrated Security=SSPI)对应的Windows认证身份,永远和SSIS包运行时所在进程的启动身份保持一致,不存在单独配置的其他账号,所有查询路径都围绕包运行时的进程所属身份展开即可。
内容的提问来源于stack exchange,提问作者user17556864
相关产品推荐
相关产品推荐

