question about : call jchem_core_pkg.use_password('mdp');

User 247a2c5018

03-12-2014 09:11:31

Hi,


 


after every restart of jchemserver, I have to run all jchem_core_pkg.use_password('mdp') for each user of Jchemcartridge. Do you know if a script exists to do that?


 


best regards,


 


Kiet Tran

ChemAxon d4fff15f08

03-12-2014 14:14:45

Hi Kiet,


 


Yes you are right the command has to be run when you connect freshly (after restart) to the DB. There is no script for it, but we have 2 workarounds, and none of them is perfect (it is already on our radar to solve it, but had no time for it):


 


1. You can put the user name/pwd into the jcart.properties file: https://docs.chemaxon.com/display/jchemcartridge/Installation+and+administration+of+JChem+Cartridge+for+Oracle


# Username and password


oracle.server.login=<jchem_owner or jchem_user>


oracle.server.password=<jchem_owner encrypted password>


but it works only for one user (you can not specify more users).


the flaw is that you would need to have the following grants for jchem_user user:


SELECT ANY TABLE


SELECT ANY SEQUENCE


DELETE ANY TABLE


CREATE ANY TABLE


CREATE ANY INDEX


CREATE ANY SEQUENCE


CREATE ANY TRIGGER


INSERT ANY TABLE


UPDATE ANY TABLE


DROP ANY TABLE


DROP ANY SEQUENCE


DROP ANY TRIGGER


 


2. putting the use_password into a logon trigger. Here you have to be careful, you can get easily into an infinite loop as on the call of use_password the JChem server tries to login into the DB with the user/pwd provided, and it may fire the logon trigger again... and you are in a loop... unless you make the appropriate exceptions in the trigger.


 


All the bests,


Norbert

ChemAxon 9c0afc9aaf

04-12-2014 09:46:06

Some more info on #1 above:


Of course all users can access the service, and none of them need to to provide their password.


But in this case for every user the same single specified user ("superuser") will connect back from the JChem Server to Oracle.


This greatly simplifies things, but this "superuser" needs to have relatively high privileges.


A more direct link:


https://docs.chemaxon.com/display/jchemcartridge/Installation+and+administration+of+JChem+Cartridge+for+Oracle#InstallationandadministrationofJChemCartridgeforOracle-jcserver_dbaccess_credentials