Handling of passwords is currently not handled ideally. The default way is to use the password directly in the query text.

A simple solution that avoids the direct storing inside the query text, can be done with a Key Value Store Feature


First, you will ne a store and save that password there. If you use a file store, this needs to be done only once (and in any case the password changes):

#CREATE_KV_STORE PasswordStore FileStore (filename=c:/temp/password.store)
#KV_STORE_WRITE PasswordStore dbpass13 df3783342

You can then use the #EVAL function from Odysseus Script to store the value to a local property. Important: You will need call the above code in a single query and not together with the following retrieval statement!

#EVAL PASSWORD = kvRead('PasswordStore','dbpass13');

and use this property anywhere in the query:

DATABASESOURCE({ table='XXX', jdbc='XXX', user='XXX', password='${PASSWORD}',

If you use the memory based data dictionary (default), the file store needs to be registered again after an Odysseus restart. The password(s) will be loaded from the store. You could also add this to Autostart.

#CREATE_KV_STORE PasswordStore FileStore (filename=c:/temp/password.store)

Of course you could use the same to store other configuration stuff, that should not be part of the query text.

Remark: This is far away from being secure, but it is better than using the password directly 


  • No labels