Obsidian needs to create and manage the following tables in its target database. When sharing schemas between Obsidian and other applications, ensure there are no naming conflicts by reviewing this list.
Note: Since Obsidian does not run jobs within the same connection or transaction as your jobs, there is no real need to run Obsidian within the same database or schema as your own application(s), though you may wish to do so to facilitate maintenance.
Obsidian can be configured to use a table prefix when creating its tables.
As of version 2.1, if you are not using the schema owner as your Obsidian database user, the following privileges will need to be granted to your database user:
# For each Obsidian table... GRANT INSERT,SELECT,UPDATE,DELETE ON OBS_JOB TO OBSIDIAN_USER; # Required for alternate schema usage GRANT ALTER SESSION TO OBSIDIAN_USER; GRANT ANALYZE ANY TO OBSIDIAN_USER; GRANT ANALYZE ANY DICTIONARY TO OBSIDIAN_USER;
MS SQL Server Snapshot Isolation
For maximum compatibility and to avoid deadlocks, MS SQL Server should be configured to use read committed snapshot isolation.
This can be enabled on your database by running the following commands:
ALTER DATABASE MyDatabase SET ALLOW_SNAPSHOT_ISOLATION ON ALTER DATABASE MyDatabase SET READ_COMMITTED_SNAPSHOT ON