<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Changing database connectivity in batchs in Talend Studio</title>
    <link>https://community.qlik.com/t5/Talend-Studio/Changing-database-connectivity-in-batchs/m-p/2365312#M128928</link>
    <description>Using the context component I can store dabase connection parameters in default.properties files however for the database password if I specify the type of context parameter as password thne the password will be encrypted in the default.propreties file and i won't be able to change it from teh file itself. which forces me recompile the job again. Is there any external tool or an interface that i change my password and it will be stored as encrypted in the properties file?</description>
    <pubDate>Mon, 13 Jul 2015 15:01:53 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2015-07-13T15:01:53Z</dc:date>
    <item>
      <title>Changing database connectivity in batchs</title>
      <link>https://community.qlik.com/t5/Talend-Studio/Changing-database-connectivity-in-batchs/m-p/2365309#M128925</link>
      <description>&lt;P&gt;Hi,&lt;BR /&gt;&lt;BR /&gt;How can I change the &amp;nbsp;encrypted database password in the property file associated with the batch file that runs a specific Job whenever the database password has changed. Do I have to regenerate the batch file again through open studio? is there a way that this can be done without the need of open studio since the batch is executed at my client environment and they don't have open studio.&lt;BR /&gt;&lt;BR /&gt;Thanx.&lt;/P&gt;</description>
      <pubDate>Fri, 10 Jul 2015 09:43:02 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/Changing-database-connectivity-in-batchs/m-p/2365309#M128925</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2015-07-10T09:43:02Z</dc:date>
    </item>
    <item>
      <title>Re: Changing database connectivity in batchs</title>
      <link>https://community.qlik.com/t5/Talend-Studio/Changing-database-connectivity-in-batchs/m-p/2365310#M128926</link>
      <description>Take a look at this tutorial (&lt;A href="https://help.talend.com/search/all?query=tContextLoad" rel="nofollow noopener noreferrer"&gt;https://help.talend.com/search/all?query=tContextLoad&lt;/A&gt;). You should be using context variables in your job to provide information like passwords. You can get these context variable values at runtime from flat files or from a database. There is no need to keep recompiling jobs.</description>
      <pubDate>Fri, 10 Jul 2015 10:09:29 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/Changing-database-connectivity-in-batchs/m-p/2365310#M128926</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2015-07-10T10:09:29Z</dc:date>
    </item>
    <item>
      <title>Re: Changing database connectivity in batchs</title>
      <link>https://community.qlik.com/t5/Talend-Studio/Changing-database-connectivity-in-batchs/m-p/2365311#M128927</link>
      <description>Thanx for the feedback.&amp;nbsp;&lt;BR /&gt;This method will allow me change the connectiona variables dynamically whenever I need to change the database ones without the need to recompile the batches. However I have another issue related to security where those values are stored in clear text in the connection files. What is the solution for this securty vulnerability?</description>
      <pubDate>Fri, 10 Jul 2015 12:47:17 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/Changing-database-connectivity-in-batchs/m-p/2365311#M128927</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2015-07-10T12:47:17Z</dc:date>
    </item>
    <item>
      <title>Re: Changing database connectivity in batchs</title>
      <link>https://community.qlik.com/t5/Talend-Studio/Changing-database-connectivity-in-batchs/m-p/2365312#M128928</link>
      <description>Using the context component I can store dabase connection parameters in default.properties files however for the database password if I specify the type of context parameter as password thne the password will be encrypted in the default.propreties file and i won't be able to change it from teh file itself. which forces me recompile the job again. Is there any external tool or an interface that i change my password and it will be stored as encrypted in the properties file?</description>
      <pubDate>Mon, 13 Jul 2015 15:01:53 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/Changing-database-connectivity-in-batchs/m-p/2365312#M128928</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2015-07-13T15:01:53Z</dc:date>
    </item>
    <item>
      <title>Re: Changing database connectivity in batchs</title>
      <link>https://community.qlik.com/t5/Talend-Studio/Changing-database-connectivity-in-batchs/m-p/2365313#M128929</link>
      <description>Ah I see. There is a workaround to this. You can create a routine that you use for all of your jobs to encrypt/decrypt your passwords (or use an existing library). Keep the key in a context group that is used for all jobs. Ensure that it is set as a password. Now, you can use this functionality to decrypt all of your passwords within the jobs, using a key that will never need changing (unless it is lost or compromised). In which case a recompile will be necessary.&lt;BR /&gt;&lt;BR /&gt;To encrypt your passwords you can create a job that uses this functionality and the hidden to key to encrypt the passwords which you can then store in flat files as encrypted text. People with access to this file will not be able to decrypt the passwords unless they have access to the function/algorithm and the encrypt/decryption password.&lt;BR /&gt;&lt;BR /&gt;Although not a perfect solution, this does allow you to not have to recompile your jobs whenever a password expires.&amp;nbsp;</description>
      <pubDate>Mon, 13 Jul 2015 15:32:49 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/Changing-database-connectivity-in-batchs/m-p/2365313#M128929</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2015-07-13T15:32:49Z</dc:date>
    </item>
    <item>
      <title>Re: Changing database connectivity in batchs</title>
      <link>https://community.qlik.com/t5/Talend-Studio/Changing-database-connectivity-in-batchs/m-p/2365314#M128930</link>
      <description>Is there any tutorial or a sample code that demonstrates this solution?
&lt;BR /&gt;
&lt;BR /&gt;Thanx</description>
      <pubDate>Tue, 14 Jul 2015 07:27:18 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/Changing-database-connectivity-in-batchs/m-p/2365314#M128930</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2015-07-14T07:27:18Z</dc:date>
    </item>
    <item>
      <title>Re: Changing database connectivity in batchs</title>
      <link>https://community.qlik.com/t5/Talend-Studio/Changing-database-connectivity-in-batchs/m-p/2365315#M128931</link>
      <description>Not that I am aware of, although it is a good idea for one. However I feel by the time I get round to doing one it would be too late for you.
&lt;BR /&gt;So, hopefully these steps will help you....
&lt;BR /&gt;
&lt;BR /&gt;1) Create a routine (a Talend Java class) with two static methods; 1 to encrypt and 1 to decrypt. You can use libraries (Jar files) for this, but it must not be one way encryption.&amp;nbsp;
&lt;BR /&gt;2) Create a context group which contains your encryption/decryption key. Have this stored as type "password".
&lt;BR /&gt;3) Create a job that takes a clear text/cipher text input and can convert it to cipher text/clear text using your encryption key. This can be used for when you need to update your passwords in your properties files.
&lt;BR /&gt;4) In your Jobs that will use the encrypted passwords, use the routine to decrypt the context variable holding the encrypted password using the hidden encryption key.
&lt;BR /&gt;
&lt;BR /&gt;As I said before, this is not fool proof. You will need to manage access to the Job used for encryption/decryption and it won't stop Talend developers from being able to code a solution to find the passwords if they really want to. However, that would be pretty hard to stop to be honest. But it will mean that you can store your encrypted passwords in a text file which other people can see, without the fear of them being able to use that data to access your databases.&amp;nbsp;</description>
      <pubDate>Tue, 14 Jul 2015 09:46:10 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/Changing-database-connectivity-in-batchs/m-p/2365315#M128931</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2015-07-14T09:46:10Z</dc:date>
    </item>
    <item>
      <title>Re: Changing database connectivity in batchs</title>
      <link>https://community.qlik.com/t5/Talend-Studio/Changing-database-connectivity-in-batchs/m-p/2365316#M128932</link>
      <description>Pls I need more help on steps 3 and 4: 
&lt;BR /&gt; 
&lt;BR /&gt;In step 3, how to create this job what kind of components to be used and how to link them? will the clear password text be read from a file and how to write the encrypted text back in teh properties file? 
&lt;BR /&gt;In Step 4, where to call teh decryption method and how to pass parameters to it? 
&lt;BR /&gt; 
&lt;BR /&gt;Thanx</description>
      <pubDate>Tue, 21 Jul 2015 09:13:45 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/Changing-database-connectivity-in-batchs/m-p/2365316#M128932</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2015-07-21T09:13:45Z</dc:date>
    </item>
    <item>
      <title>Re: Changing database connectivity in batchs</title>
      <link>https://community.qlik.com/t5/Talend-Studio/Changing-database-connectivity-in-batchs/m-p/2365317#M128933</link>
      <description>Lets assume that you have a Java method which can be used to encrypt/decrypt your passwords with a signature like below... 
&lt;BR /&gt; 
&lt;BR /&gt; 
&lt;PRE&gt;public static String encryptDecryptWord(boolean encrypt, String word, String key){&lt;BR /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;//Do stuff&lt;BR /&gt;&lt;BR /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; return value;&lt;BR /&gt;}&lt;/PRE&gt; 
&lt;BR /&gt; 
&lt;BR /&gt;For Step 3 you create a job that receives a value via a context variable. This job will use the method above to encrypt the value and output it to the terminal or to a file, you choose. This value is what you store in your parameter file as the encrypted database password.&amp;nbsp; 
&lt;BR /&gt; 
&lt;BR /&gt;For Step 4, whenever you need to use that encrypted value this will be the process. The file holding your context values will be read into the job as normal. Any password values stored as context variables will then be processed by calling the method above with the encrypted value, the boolean set to false (to decrypt) and the key (stored in your context group as a hidden password that nobody knows). So for example, if you have a context variable called password, you do something like below.... 
&lt;BR /&gt; 
&lt;BR /&gt; 
&lt;PRE&gt;context.password = routines.MyEncryptionStuff.encryptDecryptWord(false, context.password, context.encryption_key);&lt;/PRE&gt; 
&lt;BR /&gt; 
&lt;BR /&gt;The "routines.MyEncryptionStuff" is the path to the method above assuming your routine is called "MyEncryptionStuff". The context.encryption_key is your context variable holding the hidden encryption key. 
&lt;BR /&gt; 
&lt;BR /&gt;This will (for the lifetime of the job and only within the job) decrypt your encrypted password so that it can be used.</description>
      <pubDate>Tue, 21 Jul 2015 09:28:40 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/Changing-database-connectivity-in-batchs/m-p/2365317#M128933</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2015-07-21T09:28:40Z</dc:date>
    </item>
    <item>
      <title>Re: Changing database connectivity in batchs</title>
      <link>https://community.qlik.com/t5/Talend-Studio/Changing-database-connectivity-in-batchs/m-p/2365318#M128934</link>
      <description>In this way, if someone has the access of key file, so he can easily get the password. So what should we have to do for that. I am also trying the same thing. I am done with the coding of encryption/decryption, first time the DB Admin will run my utility jar to encrypt the password and then in Java Batch job I will include the code for decryption.&amp;nbsp;</description>
      <pubDate>Mon, 21 Mar 2016 08:25:19 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/Changing-database-connectivity-in-batchs/m-p/2365318#M128934</guid>
      <dc:creator>_AnonymousUser</dc:creator>
      <dc:date>2016-03-21T08:25:19Z</dc:date>
    </item>
    <item>
      <title>Re: Changing database connectivity in batchs</title>
      <link>https://community.qlik.com/t5/Talend-Studio/Changing-database-connectivity-in-batchs/m-p/2365319#M128935</link>
      <description>If someone has access to the key, the encryption/decryption algorithm and the context file containing the encrypted password, you have bigger issues with security than worrying about this.&amp;nbsp;</description>
      <pubDate>Mon, 21 Mar 2016 08:45:52 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/Changing-database-connectivity-in-batchs/m-p/2365319#M128935</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2016-03-21T08:45:52Z</dc:date>
    </item>
  </channel>
</rss>

