Please ensure that the database user used to deploy Open Specimen has the following privileges. Failing to grant any of the mentioned privileges will result in deployment failure. The attribute username on this page defines the username of the database and not the login name used to log on to Open Specimen.


MySQL

Port

Default port: 3306

If MySQL is on different server then you also need to open the MySQL port for communicating with OpenSpecimen

Privileges

Either the user should be a MySQL root user or have the following privileges

  1. ALTER
  2. ALTER ROUTINE
  3. CREATE
  4. CREATE ROUTINE
  5. CREATE VIEW
  6. DELETE
  7. DROP
  8. EXECUTE
  9. INDEX
  10. INSERT
  11. LOCK TABLES
  12. SELECT
  13. TRIGGER
  14. UPDATE
  15. REFERENCES

SQL:

GRANT ALTER, ALTER ROUTINE, CREATE, CREATE ROUTINE, CREATE VIEW, DELETE, DROP, EXECUTE, INDEX, INSERT, LOCK TABLES, SELECT, TRIGGER, UPDATE, REFERENCES ON <DATABASE-NAME>.* TO <USERNAME>

Setting INNODB

Please set the property default-storage-engine=INNODB. After the changes made, Mysql server restart is needed.

This property is available in my.ini file in case of Windows and my.cnf in a case of Linux.

Backup

In the case of an upgrade, take a manual backup of the database, this will create back up dump on database server machine.

mysqldump -u [uname] -p[pass] --routines db_name > db_backup.sql

Oracle

Port

Default port: 1521

If Oracle is on different server, then you also need to open the Oracle port for communicating with OpenSpecimen.

Privileges

  1. Either the user should be a Oracle sysdba user or have the following privileges
  2. CONNECT
  3. RESOURCE
  4. CREATE ANY TABLE
  5. DROP ANY TABLE
  6. CREATE ANY TRIGGER
  7. DROP ANY TRIGGER
  8. CREATE ANY VIEW
  9. DROP ANY VIEW
  10. CREATE ANY PROCEDURE
  11. DROP ANY PROCEDURE

SQL:

GRANT CONNECT, RESOURCE, CREATE ANY TABLE, DROP ANY TABLE, CREATE ANY TRIGGER, DROP ANY TRIGGER, CREATE ANY VIEW, DROP ANY VIEW, CREATE ANY PROCEDURE, DROP ANY PROCEDURE TO <USERNAME>

Note: If you are using the ORACLE database, it is mandatory to install the Oracle client on the machine that is hosting the Tomcat/JBoss server. Ensure that the system variable ORACLE_HOME is set properly and the system variable PATH contains ORACLE_HOME/bin.

Backup

In case of upgrade, take the manual of the database backup, this will create a back up dump on the database server machine.

expdp <user name>/<password here>@<database name> schemas=<user name> DIRECTORY=DATA_PUMP_DIR DUMPFILE=<filename> flashback_time=systimestamp

Import the dump and check the table count and records count per table, should match with original DB.

Best practices to follow

Set a strong password (the combination of alphanumeric and special characters) for the database user.

MySQL

GRANT ALL PRIVILEGES ON <DataBase name>.* To '<user>'@'<db host>' IDENTIFIED BY '<password>';
  
Note: DB host could be localhost or actual server name or IP. Specify '%' to give access for any host.

Oracle: