【发布时间】:2014-09-08 16:31:59
【问题描述】:
我正在使用 sql server 数据工具创建 ssis 包,以将数据从 AS400 提取到 sql 2012 express 数据库。我正在运行 Windows 7、64 位。我在 Visual Studio Shell 中创建了包并将日志记录设置到文本文件和 sql server 数据库中。在 Visual Studio shell 中运行时,程序包会执行,并且会填充日志文本文件和 sysssislog 表。但是,当使用 Windows 调度程序和 dtexec 实用程序执行打包时,不会填充 sql server 日志表,但会填充文本文件。
有谁知道是否需要为数据库中的任何服务帐户授予特殊权限,以便在使用 dtexec 实用程序执行时更新日志表 sysssislog?是否可能 dtexec 使用的帐户无权写入日志表或执行存储过程?
我在 Windows 调度程序中使用的唯一参数是 /f "\server\filepath\package.dtsx"。我在visual studio中设置了日志记录。是否可能还需要将日志记录设置为参数?
如果需要更多信息,请告诉我。
【问题讨论】:
-
在您的 dtexec 调用中,添加
/rep EWI(错误、警告、信息)。我打赌你会看到类似“数据库 X 中的 CREATE TABLE 权限被拒绝”之类的东西 -
我对此一无所知。日志表已经存在,因为它是我在 Visual Studio 中运行包时创建的。使用 dtexec 运行时,它不会记录任何内容。
-
启动 SQL Profiler 并观察您认为应该记录的位置。您应该会看到对
sp_ssis_addlogentry的连接和调用 -
我正在运行 sql express,我刚刚阅读了另一篇关于类似错误的帖子。我检查了一下,我想我实际上没有安装集成服务 - 我有数据工具,但这可以解释为什么我在数据工具之外运行包时遇到问题,对吧?我什至不认为 express 带有 sql profiler。
-
是的,没有安装集成服务服务(这实际上归结为许可)会阻止程序包执行。尽管填充了您的文本错误文件,但我觉得很好奇。
标签: windows ssis scheduler dtexec