学习目标:
l 实现SSIS包的安全
Ø 使用数字签名强制认证
Ø 通过设置包的保护级别实现包内容的安全
Ø 通过设置包密码实现包内容的安全
Ø 配置MSDB数据库角色,如db_dtsadmin,控制对包的存取
l 运行SSIS包
Ø 通过dtexec或者dtexecUI调用包
Ø 调度SSIS包
Ø 使用SSIS服务执行包
l 管理SSIS包的执行
Ø 使用DTUtil实用程序管理包
Ø 定义日志选项
Ø 定义执行属性
l 管理SSIS包配置
Ø 使用DTUtil修改包配置变量
一、设置包角色、保护级别、密码
安全保护的对象:
连接信息;元数据信息
有三种方式可以限制对包的访问:
使用包安全等级,对包的内容加密
如果SSIS部署在文件系统,使用文件系统提供的安全特性
如果SSIS部署在数据库,定义数据库角色
1、理解并设置包保护级别
包保护级别定义加密哪些内容以及如何加密
ProtectionLevel属性的默认值是EncryptSensitiveWithUserKey,只加密敏感信息。当被加密的包被其它人打开时,会被要求输入加密密码。
ProtectionLevel的选项有:
ProtectionLevel | Description |
EncryptSensitiveWithUserKey | 使用当前用户和机器的信息加密敏感信息;其它用户打开时密码会被清除 |
EncryptSensitiveWithPassword | 使用密码加密,每次打开时都会要求输入密码 |
EncryptAllWithUserKey | 只有当前用户和机器可以设计和执行 |
EncryptAlWithPassowrd | 没有密码不能执行包 |
ServerStorage | 当包部署到数据库时有效;使用数据库角色保护 |
DonotSaveSensitive | 包的内容不包含敏感信息 |
2、指定包密码
3、指定数据库角色
Read role:执行;只能指定一个角色
Write role:换入换出MSDB;只能指定一个角色
默认角色:
角色 | 读操作 | 写操作 |
Db_dtsadmin |
|
|
Db_dtsltduser | 与创建都相关 |
|
Db_dtsoperator |
|
|
Widows admin | 查看运行记录 |
|
4、使用DTUil管理包的安全性
使用加密方式部署包的例子:
Dtutil.exe ./file MyPackage.dtsx /encrypt file;MyPackage.dtsx;3;EncPwd
数字签名的例子
Dtuil.exe /sign sql;MyPackage
二、建立SSIS执行命令行
执行SSIS包的两种常见方式是:
l 通过SSIS对象模型程序方式调用
l 通过DTExec命令行执行,DTExecUI和SQL Server Agent都支持命令行方式
1、使用DTExecUI配置包的执行方式
执行DTExecUI的机器必须是安装了SSIS。
具体具体执行参数,见Page440
设置运行时属性值,有PropertyPath,举例如下:
PropertyPath: /Package.Variables[User::strUserName].Value
PropertyValue: UserName
2、使用DTExec执行包
参数如DTExecUI,下面是调用SQL SERVER 上的SSIS包的例子:
Dtexec.exe /sql MyPackage /server SQLProd
执行文件SSIS包的例子:
Dtexec.exe /file “c:/MyPackage.dtsx”
增加执行日志的例子:
Dtexec.exe /file “c:/MyPackage.dtsx” /log “DTS.LogProviderTextFile;c:/SSISLog.txt”
引入XML配置文件执行的例子:
Dtexec.exe /file “c:/MyPackage.dtsx” /conf “c:/pkgOneConfg.cfg”
Dtexec的执行根目录是dtexec程序所在的目录
三、在SSMS中管理、调度和执行包
1、SSMS中执行包
1)包的存储位置:
l Package store 文件目录
l Msdb数据库
2)可以在SSMS中执行包,也是调用DTExecUI
2、建立执行SSIS包的代理任务
在SQL Server中建立一个job执行SSIS包。
四、总结
1、当包载入SQL Server时,可以通过MSDB库的角色控制安全
2、包的保护级别
3、DTUtil不仅提供了部署包的能力,还可以加密和数字签名
4、DTUtilUI用于产生DTUtil命令行
5、DTUtil用于执行包,可以改变连接、变量值、日志选项和应用配置文件
6、SSMS管理和执行SSIS包
7、SQL Server Agent调度执行包