Question

We have one SQL Server job for transferring data from one sql server to other sql server m/c.Both m/c are situated at different location.Currently we using Linked server but it's performance is very slow. Hence we thought of transferring data using SSIS.During POC test phase SSIS gave me satisfactory results.But still I have some questions regarding this,

  • For ease of change of environment (DEV to UAT and UAT to Prod) I used SQL server Connection managers. All necessary connection strings are stored in [SSIS Configurations] table. But Connection strings in this table are in plain text format. Is there any way to encrypt these Connection string [Please Note ,I am not talking about package level encryption. Package level encryption would be useful only if connection strings are same across different environment which is not possible in my case ]..
  • What should I do to handle different errors, is there any error handling mechanism in SSIS.I heard of check points but still not clear about its use

As an alternative path can I use SQLBulkCopy with IDatareader. Thanks in advance..

Was it helpful?

Solution

I suggest you use use Windows trusted authentication, as then no login or password is required in the connection string, and neither is a package password, as there is no sensitive info. You really should stop using SQL Server logins (as opposed to windows logins) unless you have a very good reason.

Both SQL Servers will need to be part of the same domain, and you'll need to set the SQL Agent account to a windows account that has access to the required databases.

OTHER TIPS

The best way is to use a separate app to launch your SSIS package. This console app would be able to read an encrypted password from a settings file and decrypt it for execution (for insertion into the connection strings).

Your console app can then loop through all connection managers in the package and apply the proper connection string to each based on the connection manager's name.

You'll need to reference a SQL Server SDK assembly for this to work. Also, SQL Server Integration services must be installed on every computer that will execute this app, or SSIS won't be able to run.

Here's a link to another question that addresses how to programmatically execute a dtsx/SSIS package from .NET. Can you run an SSIS task from .net?

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top