Download presentation
Presentation is loading. Please wait.
Published byFelicia Lee Modified over 9 years ago
1
Overcoming SSIS Deployment and Configuration Challenges Erik Veerman Mentor, Solid Quality Mentors SQL Server MVP
2
//ATLANTAMDF 2 SQL Server MVP (Most Valuable Professional) Mentor with Solid Quality Mentors ~15 years in the industry, 10 years SQL Server BI experience (v1 SQL BI, beta SQL 7)… Telco, Manufacturing, Finance, Insurance, Retail, Real Estate… MS Worldwide BI Solution of the Year SQL Server Magazine Innovator Cup Microsoft Project REAL ETL Architect Author: SQL Server 2008 Integration Services Professional MS Press SQL Server BI Training Kit (70-445) (70-448 in progress!) SQL Server 2005 Integration Services Expert SQL Server 2005 Integration Services Professional Speaker BIO – Erik Veerman
3
//ATLANTAMDF Industry-Leading Technical Experts, Authors, Speakers Solid Quality™ Mentors are more than 100 of the world’s top technical experts who specialize in assuring client success using integrated Microsoft technologies. “Catch the Solid Quality™ Advantage” www.solidq.com 3
4
//ATLANTAMDF 4 Who has had challenges with SSIS deployment or configurations? Has anyone punched a wall or other visible frustrations? Has anyone actually had to go to anger management? Let’s be honest…
5
//ATLANTAMDF Baby Steps: The Books-Online Basics – Security: Encryption and Connections – Configurations and Expressions – Deployment The Problem: Bob Anger Management: The Solutions Agenda
6
http://www.youtube.com/watch?v=C_gqZyUfjrk
7
//ATLANTAMDF BOL Basics: SSIS Package Security Security is comprised of several layers to support both SQL and File System based scenarios – Packages can be encrypted – Packages can be digitally signed – Packages can be stored in SQL DB and protected with roles – Packages can be stored in the File System and protected with File System Security Package Definition: Storage: SSIS Package File (.DTSX): Encrypted, Digitally Signed File System: File System Security MSDB: MSDB SQL Server Roles
8
//ATLANTAMDF BOL Basics: SSIS Package Security Internal Package Security – Package encryption – Used to encrypting connection passwords or the entire package – Package Password – Optional password applied to the package to un-encrypt any encrypted contents External Package Security – MSDB database roles for packages deployed to SQL Server. Reader and Writer roles included for execution and reading privileges – File system security for packages deployed to server file systems or file shares
9
//ATLANTAMDF BOL Basics: SSIS Package Encryption Levels Don’t Save Sensitive Encrypt Sensitive with User Key Encrypt Sensitive with Password Encrypt All with User Key Encrypt All with Password Server Storage
10
//ATLANTAMDF Package Encryption and MSDB demo … demo …
11
//ATLANTAMDF BOL Basics: Securing Data and Connections Data Security – Data is not stored as part of a package Connection Schema Security – Connection schema information will be stored in packages depending on the uses (Data Flow source/destinations and Execute SQL) – Lock down package access when appropriate File system rights Package encryption/password Package roles and access
12
//ATLANTAMDF Package Connections and Encryption demo … demo … 12
13
//ATLANTAMDF SSIS Package Connection 1 = XYZ Variable 1 = XYZ SSIS Package Connection 1 = XYZ Variable 1 = XYZ SSIS Package Connection 1 = ABC Variable 1 = ABC BOL Basics: SSIS Configurations Update package properties at execution time based on external setting – Variable properties – Connection Properties – Package properties – Task and Container Properties Data Flow Transformation properties are not configurable except at the Task level Configuration Connection 1 = ABC Variable 1 = ABC
14
//ATLANTAMDF SSIS Configuration Types XML File Configuration – Direct path or… – Environment Variable driven SQL Server Configuration – Table Driven – Filter Column grouping configurations Registry Configuration Parent Package Variable Configuration – Inherit variables from master packages Environment Variable Configuration
15
//ATLANTAMDF Package Configurations demo … demo …
16
//ATLANTAMDF BOL Basics: SSIS Property Expressions Runtime updates of Control Flow components – Package level properties – Task and Container properties – Connections, too! Expressions assignable through property windows and task editors SSIS expression language based SSIS Package Variable1 = C:\FileA Connection1 = Expression: @Variable1 Step 1: Run Data Flow Access Connection1 Extract from C:\FileA Step 2: Update Variable Step 3: Run Data Flow Access Connection1 Extract from C:\FileB C:\FileA C:\FileB
17
//ATLANTAMDF SSIS Property Expressions Common Property Expression usage – Dynamic SQL for non-parameterizable statements – Connections, Checkpoints, Disable flag – Loop Container enumeration functionality Variable values can be updated by expressions through the EvaluateAsExpression and Expression property of the variable
18
//ATLANTAMDF Property Expressions demo … demo …
19
//ATLANTAMDF BOL Basics: Deployment Deployment destinations – File System (file share or local drive) – MSDB Database (sysdtspackages90 or sysssispackages) Deployment options – Manual windows command line script (Xcopy or Robocopy) – DTUtil command line script (file system or MSDB) – Deployment Wizard and Installer
20
//ATLANTAMDF BOL Basics: Deployment File System MSDB Development Test or Production SSIS Package BIDS Project Folder File System or Share File Copy, DTUtil, Installer Set Development Test or Production SSIS Package BIDS Project Folder MSDB Database SSMS, DTUtil, Installer Set
21
//ATLANTAMDF BOL Basics: Deployment Wizard Designer can build a deployment set which includes a project's packages, configurations files and an installer file You move the installer file set to another server/environment and execute to install packages to SQL or file system Installer can "copy" misc files but will not install them, such as custom components Deployment overwrites existing packages
22
//ATLANTAMDF Package Deployment demo … demo …
23
//ATLANTAMDF Baby Steps: The Books-Online Basics – Security: Encryption and Connections – Configurations and Expressions – Deployment The Problem: Bob Anger Management: The Solutions Agenda
24
24 You want to live a normal IT life but the problem follows you around Just when you think you’ve solved the problem, there it is again The Problem: You’re the expert, but the problem will not go away Just knowing the baby steps doesn’t get you far enough
25
//ATLANTAMDF SSIS Deployment Challenges Encryption causes your package to fail Connections and other properties aren’t updated Passwords are not available or too easily accessible Shared configurations require properties and connections exist SQL Configurations point to Dev database Encryption Failure: Server 1Server 2 SSIS Package Connection A SSIS Packages MSDB or File System SSIS Package Connection A Package Deployed Encryption With UserKey Encryption With UserKey Package Fails! Can not decrypt UserKey (New Machine) Package Fails! Can not decrypt UserKey (New Machine)
26
//ATLANTAMDF SSIS Deployment Challenges Connections and other properties aren’t updated Server 1Server 2 SSIS Package Dev Connection A Dev Connection B Dev Connection A MSDB or File System Package Error! Connections Point to Wrong Databases/Files Package Error! Connections Point to Wrong Databases/Files SSIS Package Dev Connection A Dev Connection B Package Deployed Dev Connection B Prod Connection A Prod Connection B SSIS Packages
27
//ATLANTAMDF SSIS Deployment Challenges SQL Configurations point to Dev database (or configuration database not accessible!) Server 1Server 2 SSIS Package Dev Connection A Dev Connection B Dev Config DB Dev Connection A MSDB or File System Config DB Connection Not Updated! SSIS Package Dev Connection A Dev Connection B Dev Config DB Package Deployed Dev Connection B Prod Connection A Prod Connection B Dev Config DB 1 2 1 Prod Config DB 2 SSIS Packages
28
//ATLANTAMDF Pulling Your Hair Out! demo … demo …
29
//ATLANTAMDF Baby Steps: The Books-Online Basics – Security: Encryption and Connections – Configurations and Expressions – Deployment The Problem: Bob Anger Management: The Solutions Agenda
30
Solution 1 Solution 1: Tie Bob to the Boat Pretend the problem is not there Try and man-handle the problem Make the problem worse
31
Solution 2 Solution 2: Blow up the house Give up Find a punching bag Declare to Bill Gates that you are not a PC anymore
32
//ATLANTAMDF Dealing with Encryption Situation: All connections allow Windows Authentication Use Windows Authentication only for all connections Turn off encryption (Set encryption to DontSaveSensitive) Server 1Server 2 SSIS Package Connection A/B/C (Windows Auth) SSIS Packages MSDB or File System SSIS Package Connection A/B/C (Windows Auth) Package Deployed Encryption: DontSave- Sensitive Encryption: DontSave- Sensitive
33
//ATLANTAMDF Dealing with Encryption Situation: One or more connections require password Option 1: EncryptSensitiveWithPassword Pass in the package Password during execution Option 2: Set encryption to DontSaveSensitive Use a Configuration to update the password Option 3: Deploy to MSDB, set encryption to ServerStorage Option 1: Server 1Server 2 SSIS Package Connection A, password = ABC SSIS Packages MSDB or File System SSIS Package Connection A, password = ABC Package Deployed Encryption: EncryptSensitive- WithPassword Encryption: EncryptSensitive- WithPassword Package Executed with DTExec and the /P switch
34
//ATLANTAMDF Dealing with Encryption Option 2: Set encryption to DontSaveSensitive Use a Configuration to update the password Server 1Server 2 SSIS Package Connection A, password = [Blank] SSIS Packages MSDB or File System SSIS Package Connection A, password = [Blank] Package Deployed Encryption: DontSave- Sensitive Encryption: DontSave- Sensitive Config File password = ABC Config File password = ABC
35
//ATLANTAMDF Solving the Encryption Problem demo … demo …
36
//ATLANTAMDF Dealing with Connections Option 1: Use a File Configuration (direct or indirect path) Option 2: Use a File and SQL Configuration Option 3: Use Property Expressions and Variables Server 1Server 2 SSIS Package Dev Connection A Dev Connection B Dev Connection A MSDB or File System SSIS Package Dev Connection A Dev Connection B Package Deployed Dev Connection B Prod Connection A Prod Connection B Dev Config File 1 2 1 Prod Config File 2 SSIS Packages Option 1
37
//ATLANTAMDF Dealing with Connections Option 2: Use a File and SQL Configuration Server 1Server 2 SSIS Package Dev Connection A Dev Connection B Dev Config DB Dev Connection A MSDB or File System SSIS Package Dev Connection A Dev Connection B Dev Config DB Package Deployed Dev Connection B Prod Connection A Prod Connection B Dev Config File 1 3 1 Prod Config File SSIS Packages SSIS Dev Config DB 2 SSIS Prod Config DB 2 3
38
//ATLANTAMDF Demo, Two-Pass Configuration Approach demo … demo …
39
//ATLANTAMDF Dealing with Connections Option 3: Use a Package Variable and Expression Server 1Server 2 SSIS Package Connection A Variable Connection B Variable Connection A (Expression) Connection B (Expression) Dev Connection A MSDB or File System Dev Connection B Dev Config File 1 3 SSIS Packages 2 4 SSIS Package Connection A Variable Connection B Variable Connection A (Expression) Connection B (Expression) Dev Connection A Dev Connection B Dev Config File 1 2 Package Deployed Makes sharing configurations easier! 3 4
40
//ATLANTAMDF Demo, Variable Based Configuration Approach demo … demo …
41
//ATLANTAMDF BIDS Helper CodePlex.com – BIDS Helper Tools – Deployment SSIS Packages tool – dtsConfig File Formatter – Expression and Configuration Highlighter – Expression List – Non-default properties list – Variables Window Extensions – FixRelativePaths – …others… 41
42
//ATLANTAMDF 42 Consider storing your packages on SQL Server Consider storing your packages in the file system Will you have hundreds of SSIS packages Yes Do you need Pkg execution or read privileges for a team Package Storage Decision Flow Do you Need a centralized package backup and Security model Are you using SQL Server RDBMS? Are you the DBA or do you have DBA privileges? Can your Source Control tool handle deployment No Yes No Yes No Will you Have a lot of Master- Child packages? Yes No Other factors: cluster, multiple servers, etc No Yes No Yes
43
//ATLANTAMDF Use DTUtil and Command Line Scripting Do you have a set of packages to be deployed per deployment Package Deployment Decision Flow Do you Need to automate deployment Are you storing your packages in SQL Server? Can your Source Control handle deployment Do your Packages for deployment always come from the same BIDS project? No Yes No Yes Manually deploy package Files Use the Source Control Deployment Tools for file system deployment Use the SSIS Deployment Wizard Yes No
44
//ATLANTAMDF Package Encryption Decision Flow (version 1) Are you Breathing? Yes EncryptSensitive- WithUserKey EncryptAll- WithUserKey DontSave- Sensitive EncryptSensitive- WithPassword EncryptAll- WithPassword ServerStorage
45
//ATLANTAMDF Package Encryption Decision Flow (version 2) Are you Obsessive Compulsive (like Bob)? Yes EncryptSensitive- WithUserKey EncryptAll- WithUserKey DontSave- Sensitive EncryptSensitive- WithPassword EncryptAll- WithPassword No ServerStorage
46
//ATLANTAMDF Package Encryption Decision Flow (version 3) Are you the only person that will ever edit/design the package Yes EncryptSensitive- WithUserKey EncryptAll- WithUserKey DontSave- Sensitive EncryptSensitive- WithPassword EncryptAll- WithPassword No Will you always use the same Server? Do you need a class in anger management No Yes ServerStorage Yes
47
//ATLANTAMDF Package Encryption Decision Flow (version 4) Are you deploying to SQL Server… And are deploying using the SSIS Deployment Tool… And don’t use configurations… And your passwords don’t change… Yes No ServerStorage See other options…
48
//ATLANTAMDF Use an indirect (Env Var to reference) file configuration Do you or your org have a standard or pref. for storing settings in files or DBs? Package Configuration Decision Flow Do you have passwords or sensitive properties in the package? Will the file name or Path change between servers? Yes Tables No Use a direct file configuration Files Is your server locked down (file and DB)? Is it easier in your org to secure files or tables? No Yes Use SQL Config with a File Config as a pointer Tables Yes Files Other factor: Sharing configs
49
Thank you
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.