【问题标题】:Where is the msdb database for standalone SSIS Servers独立 SSIS 服务器的 msdb 数据库在哪里
【发布时间】:2025-12-18 15:25:04
【问题描述】:

我正在开发 DWH 应用程序。我被授予访问权限的服务器仅安装了没有数据库引擎的 SSIS。我收到如下错误:

对象“sp_ssis_listfolders”、数据库“msdb”、架构“dbo”的 EXECUTE 权限被拒绝。

我需要验证数据库引擎和 msdb 的权限。有没有办法找到配置为托管 msdb 数据库的服务器?

【问题讨论】:

  • 申请类型是什么?包裹存放在哪里?
  • Tha 包默认存储在我未能找到的 MSDB 中。应用程序类型是什么意思?
  • 从哪里调用你的包,.exe 文件或其他什么?
  • 计划任务执行DTExec
  • 你能显示预定的命令吗?

标签: sql-server ssis etl sql-server-data-tools bids


【解决方案1】:

找到了!

它隐藏在 SSIS 安装文件夹中的配置文件中。浏览到C:\Program Files\Microsoft SQL Server\120\DTS\Binn,然后查找名为MsDtsSrvr.ini.xml 的文件。服务器名称就在那里,可以随意更改。

【讨论】:

  • 这很有帮助。恭喜!!
【解决方案2】:

读完你的cmets后,你必须去windows计划任务,读运行Dtexec utility的命令

该命令将如下所示:

C:\..\dtexec /SQL "\Package1" /SERVER "Test\Test" /USER "blabla" /PASSWORD "blabla"

/SERVER关键字后面的字符串是包所在的服务器名

如果包不在 SQL 服务器中,而是从包文件中执行,则命令将如下所示:

C:\..\dtexec /F "C:\Packages\Package1.dtsx"

然后去包打开它并从中读取连接字符串。

在这些文章中阅读有关 DtExec 实用程序的更多信息:

有关抛出异常的信息

在SQL server中,Execute Package中连接关联的用户账号需要在msdb数据库中被授予db_ssisoperator角色,否则找不到正在调用的其他包。

它可能还需要将自己添加到以下角色中:

  • db_ddladmin
  • db_ssisadmin

您可以在这些链接中找到其他建议:

【讨论】: