SSIS 目录

目录 SSISDB 是使用已部署到 Integration Services 服务器的 Integration Services (SSIS) 项目的中心点。 例如,您可以设置项目和包参数,配置环境以便为包指定运行时值,执行包并对包进行故障排除,以及管理 Integration Services 服务器操作。

存储在 SSISDB 目录中的对象包括项目、包、参数、环境和操作历史记录。

通过查询数据库中 SSISDB 的视图 SSISDB ,可以检查目录中存储的对象、设置和操作数据。 可以通过调用数据库中 SSISDB 的存储过程或使用目录的 SSISDB UI 来管理对象。 在很多情况下,同一个任务既可使用 UI 执行,也可以通过调用存储过程来执行。

要维护 SSISDB 数据库,建议您应用管理用户数据库的标准企业策略。 有关创建维护计划的信息,请参阅 Maintenance Plans

目录SSISDBSSISDB数据库支持Windows PowerShell。 有关将 SQL Server 与 Windows PowerShell 一起使用的详细信息,请参阅 SQL Server PowerShell。 有关如何使用 Windows PowerShell 完成任务(如部署项目)的示例,请参阅 blogs.msdn.com 上的博客文章 SQL Server 2012 中的 SSIS 和 PowerShell

有关查看操作数据的详细信息,请参阅 监视包执行和其他操作

可通过连接到 SQL Server 数据库引擎,然后在 对象资源管理器 中展开 Integration Services 目录节点,在 SQL Server Management Studio 中访问SSISDB该目录。 SSISDB通过展开 对象资源管理器 中的“数据库”节点,访问 SQL Server Management Studio 中的数据库。

注意

不能重命名 SSISDB 数据库。

注意

如果数据库附加到SQL Server实例SSISDB停止或不响应,则ISServerExec.exe进程结束。 向 Windows 事件日志写入一条消息。

如果SQL Server资源在群集故障转移过程中进行故障转移,则正在运行的包不会重启。 您可以使用检查点来重新启动包。 有关详细信息,请参阅 通过使用检查点重新启动包

目录对象标识符

在目录中创建新对象时,为该对象指定一个名称。 对象名称就是一个标识符。 SQL Server 定义了有关可在标识符中使用的字符的规则。 以下对象的名称必须遵循标识符规则。

  • Folder

  • Project

  • 环境

  • 参数

  • 环境变量

文件夹、项目和环境

重命名文件夹、项目或环境时,请考虑以下规则。

  • 无效字符包括 ASCII/Unicode 字符 1 到 31、引号 (")、小于号 (<)、大于号 (>)、竖线 (|)、退格符 (\b)、null (\0) 和制表符 (\t)。

  • 名称不得包含前导空格或尾随空格。

  • 不允许将 @ 作为第一个字符,但后续字符可使用 @。

  • 名称的长度必须大于 0 且小于或等于 128。

参数

命名参数时,请考虑以下规则。

  • 名称的第一个字符必须是在 Unicode 标准 2.0 中定义的字母,或者是下划线 (_)。

  • 后续字符可以是在 Unicode 标准 2.0 中定义的字母或数字,或是下划线 (_)。

环境变量

命名环境变量时,请考虑以下规则。

  • 无效字符包括 ASCII/Unicode 字符 1 到 31、引号 (")、小于号 (<)、大于号 (>)、竖线 (|)、退格符 (\b)、null (\0) 和制表符 (\t)。

  • 名称不得包含前导空格或尾随空格。

  • 不允许将 @ 作为第一个字符,但后续字符可使用 @。

  • 名称的长度必须大于 0 且小于或等于 128。

  • 名称的第一个字符必须是在 Unicode 标准 2.0 中定义的字母,或者是下划线 (_)。

  • 后续字符可以是在 Unicode 标准 2.0 中定义的字母或数字,或是下划线 (_)。

目录配置

通过调整目录属性来优化目录的行为方式。 目录属性定义如何对敏感数据进行加密,以及如何保留操作和项目版本控制数据。 若要设置目录属性,请使用“目录属性”对话框,或调用 catalog.configure_catalog(SSISDB 数据库)存储过程。 若要查看属性,请使用对话框或查询 catalog.catalog_properties(SSISDB 数据库)。 可以通过右键单击对象资源管理器中的 SSISDB 来访问该对话框。

操作和项目版本清理

目录中很多操作的状态数据都存储在内部数据库表中。 例如,目录会跟踪包执行和项目部署的状态。 为了维持操作数据的大小,使用 中的 “SSIS Server 维护作业” SQL Server Management Studio 来删除旧数据。 在安装 SQL Server 时创建此 Integration Services 代理作业。

您可以使用相同名称将 Integration Services 项目部署到目录中的同一文件夹,以对其进行更新或重新部署。 默认情况下,每次重新部署项目时, SSISDB 目录都会保留项目的早期版本。 为了维持操作数据的大小,使用了 “SSIS 服务器维护作业” 来删除旧版本的项目。

以下SSISDB目录属性定义此SQL Server 代理作业的行为方式。 可以使用“目录属性”对话框或使用 catalog.catalog_properties(SSISDB 数据库)catalog.configure_catalog(SSISDB 数据库)查看和修改属性。

定期清理日志
当此属性设置为 True 时,操作清除作业步骤将会运行。

保持期(天)
定义可允许的操作数据的最长保存时间(以天为单位)。 将删除较旧的数据。

最小值为一天。 最大值仅受SQL Serverint数据的最大值限制。 有关此数据类型的信息,请参阅 int、bigint、smallint 和 tinyint (Transact-SQL)

定期删除旧版本
当此属性设置为 True 时,项目版本清除作业步骤将会运行。

每个项目的最大版本数
定义在目录中存储项目的多少个版本。 将删除较旧版本的项目。

加密算法

“加密算法” 属性可指定用于对敏感参数值进行加密的加密类型。 可以从下列加密类型中选择。

  • AES_256(默认值)

  • AES_192

  • AES_128

  • DESX

  • TRIPLE_DES_3KEY

  • TRIPLE_DES

  • DES

将 Integration Services 项目部署到 Integration Services 服务器时,目录会自动加密包数据和敏感值。 该目录还会在检索数据时自动解密数据。 SSISDB 目录使用 ServerStorage 保护级别。 有关详细信息,请参阅 Access Control for Sensitive Data in Packages

更改加密算法是一项很耗时的操作。 首先,服务器必须使用以前指定的算法来解密所有配置值。 然后,服务器必须使用新算法来重新对这些值进行加密。 此时,在服务器上不能有其他 Integration Services 操作。 因此,为使 Integration Services 操作继续运行而不会中断,加密算法在 Management Studio 的对话框中是只读值。

若要更改 加密算法 属性设置,请将 SSISDB 数据库设置为单用户模式,然后调用catalog.configure_catalog存储过程。 将 ENCRYPTION_ALGORITHM 用于 property_name 参数。 有关受支持的属性值,请参阅 catalog.catalog_properties(SSISDB 数据库)。 有关该存储过程的详细信息,请参阅 catalog.configure_catalog(SSISDB 数据库)

有关单用户模式的详细信息,请参阅 将数据库设置为单用户模式。 有关 SQL Server中加密和加密算法的信息,请参阅 SQL Server 加密一节中的有关主题。

数据库主密钥用于加密。 创建目录时会创建此密钥。 有关详细信息,请参阅 创建 SSIS 目录

下表列出了 “目录属性” 对话框中显示的属性名称和数据库视图中对应的属性。

属性名称( “目录属性” 对话框) 属性名称(数据库视图)
加密算法名称 ENCRYPTION_ALGORITHM
定期清理日志 OPERATION_CLEANUP_ENABLED
保持期(天) RETENTION_WINDOW
定期删除旧版本 VERSION_CLEANUP_ENABLED
每个项目的最大版本数 MAX_PROJECT_VERSIONS
服务器范围的默认日志记录级别 SERVER_LOGGING_LEVEL

权限

文件夹中包含的项目、环境和包是安全对象。 您可以授予对文件夹的权限,包括 MANAGE_OBJECT_PERMISSIONS 权限。 利用 MANAGE_OBJECT_PERMISSIONS,您可以将文件夹内容的管理委托给用户,而无需为 ssis_admin 角色授予用户成员身份。 您还可以授予对项目、环境和操作的权限。 操作包括初始化 Integration Services、部署项目、创建和启动执行、验证项目和包以及配置 SSISDB 目录。

有关数据库角色的详细信息,请参阅 数据库级别的角色

SSISDB 目录使用 DDL 触发器 (ddl_cleanup_object_permissions) 强制 SSIS 安全对象的权限信息的完整性。 当从 SSISDB 数据库中删除数据库主体(如数据库用户、数据库角色或数据库应用程序角色)时,将会触发触发器。

如果该主体已对其他主体授予或拒绝权限,则应先撤消授权者授予的权限,然后才能删除主体。 否则,系统尝试删除主体时会返回一条错误消息。 触发器将删除数据库主体作为被授权者的所有权限记录。

建议不要禁用触发器,因为它可确保在从 SSISDB 数据库中删除数据库主体后,没有孤立的权限记录。

管理权限

可以使用 SQL Server Management Studio 用户界面、存储过程以及 Microsoft.SqlServer.Management.IntegrationServices 命名空间来管理权限。

若要使用SQL Server Management Studio UI 管理权限,请使用以下对话框。

若要使用 Transact-SQL 管理权限, 请调用 catalog.grant_permission (SSISDB 数据库) catalog.deny_permission (SSISDB 数据库) ,并 catalog.revoke_permission (SSISDB 数据库) 。 若要查看所有对象的当前主体的有效权限,请查询 catalog.effective_object_permissions(SSISDB 数据库)。 本主题描述了不同类型的权限。 若要查看已显式分配给用户的权限,请查询 catalog.explicit_object_permissions(SSISDB 数据库)

文件夹

文件夹中包含目录中的一个或多个项目和环境 SSISDB 。 可以使用 catalog.folders(SSISDB 数据库)视图来访问有关目录中的文件夹的信息。 您可以使用以下存储过程管理文件夹。

项目和包

每个项目可以包含多个包。 项目和包都可以包含参数和对环境的引用。 您可以使用 Configure Dialog Box访问参数和环境引用。

您可以通过调用以下存储过程执行其他项目任务。

以下视图提供了有关包、项目和项目版本的详细信息。

参数

您可以使用参数在包执行时为包属性赋值。 若要设置包或项目参数的值和清除这些值,请调用 catalog.set_object_parameter_value(SSISDB 数据库)catalog.clear_object_parameter_value(SSISDB 数据库)。 若要设置执行实例的参数值,请调用 catalog.set_execution_parameter_value(SSISDB 数据库)。 可以通过调用 catalog.get_parameter_values(SSISDB 数据库)来检索默认参数值。

以下视图显示了所有包和项目的参数,以及用于执行实例的参数值。

服务器环境、服务器变量和服务器环境引用

服务器环境包含服务器变量。 当在 Integration Services 服务器上执行或验证包时,可以使用这些变量值。

利用以下存储过程,您可以为环境和变量执行很多其他管理任务。

通过调用 catalog.set_environment_variable_protection(SSISDB 数据库)存储过程,可以设置变量的敏感性位。

若要使用服务器变量的值,请指定项目和服务器环境之间的引用。 您可以使用以下存储过程创建和删除引用。 还可以指示环境是可以位于与项目相同的文件夹中,还是位于其他文件夹中。

有关环境和变量的详细信息,请查询以下视图。

执行和验证

执行就是一个包执行实例。 调用 catalog.create_execution(SSISDB 数据库)catalog.start_execution(SSISDB 数据库)可创建并启动执行。 若要停止执行或停止包/项目验证,请调用 catalog.stop_operation(SSISDB 数据库)

若要暂停正在运行的包和创建转储文件,请调用 catalog.create_execution_dump 存储过程。 转储文件提供了有关包执行的信息,可帮助您解决执行问题。 有关生成和配置转储文件的详细信息,请参阅 Generating Dump Files for Package Execution

有关执行、验证、操作期间记录的消息以及与错误有关的上下文信息的详细信息,请查询以下视图。

可以通过调用 catalog.validate_project(SSISDB 数据库)catalog.validate_package(SSISDB 数据库)存储过程验证项目和包。 catalog.validations(SSISDB 数据库)视图提供了有关验证的详细信息,例如,验证中要考虑的服务器环境引用、验证是依赖项验证还是完整验证以及使用 32 位运行时还是 64 位运行时来运行包。