Datenbank-Verbindung

In der Standard-Auslieferung wird smart.finder SDI mit einer InMemory-Datenbank betrieben (Typ: HSQL). Für erste Tests reicht dies aus, im produktiven Betrieb wird empfohlen, auf eine der unterstützen Datenbanksysteme zu wechseln.

Die benötigten JDBC-Datenbanktreiber werden nicht mit ausgeliefert. Kopieren Sie daher die zu Ihrem Datenbanksystem passenden Treiber entweder nach [TOMCAT_HOME]/lib oder [TOMCAT_HOME]/webapps/ct-smarteditor-webapp-[VERSION]/WEB-INF/lib.

Die folgenden Abschnitte zeigen, wie diese Umstellung durchzuführen ist.

Vorbereitung der Datenbankumgebung

Anhängig von der Datenbank, die im produktiven Betrieb eingesetzt werden soll, müssen unterschiedliche Schritte unternommen werden. Die folgenden Angaben sind in erster Linie Hilfestellungen, an denen Sie sich orientieren können. Einige Einstellungen müssen Sie entsprechend den Richtlinien ihrer Datenbankumgebung erstellen (z.B. ein explizites Schema im Falle von PostreSQL oder die genauer Größe und Struktur des Tablespaces in Oracle).

Folgende Platzhalter werden verwendet:

  • <USER>: Name des Datenbanknutzers

  • <PASSWORD>: Passwort des Datenbanknutzers

  • <TABLESPACE>: Tablespace der Datenbank

  • <LOGIN>: logischer LOGIN zur Datenbank

  • <DATABASE>: Name der Datenbank

  • <HOST>: Hostrechner der Datenbank

  • <PORT>: Datenbank-Port auf dem Hostrechner

Oracle

Erzeugen Sie einen Nutzer und weisen Sie ihm einen Tablespace zu:

CREATE USER <USERNAME> IDENTIFIED BY <PASSWORD> QUOTA UNLIMITED ON <TABLESPACE> TEMPORARY TABLESPACE TEMP;

Folgende Rechte müssen zugewiesen werden:

GRANT CREATE SESSION TO <USERNAME>;
GRANT CREATE TABLE TO <USERNAME>;
GRANT CREATE SEQUENCE TO <USERNAME>;

MS SQL Server

Erzeugen Sie eine Datenbank:

CREATE DATABASE <DATABASE>;

Erzeugen Sie Login Master Database und einen assoziierten Nutzer in <DATABASE>:

CREATE LOGIN <LOGIN> WITH password='<PASSWORD>';
USE <DATABASE>;
CREATE USER <USERNAME> FROM LOGIN <LOGIN>;

Weisen Sie folgende Rollen zu:

ALTER ROLE db_datareader ADD MEMBER [<USERNAME>];
ALTER ROLE db_datawriter ADD MEMBER [<USERNAME>];
ALTER ROLE db_ddladmin ADD MEMBER [<USERNAME>];

PostgreSQL

Erzeugen Sie eine Datenbank:

CREATE DATABASE <DATABASE>;

Erzeugen Sie einen Nutzer:

CREATE USER <USERNAME> WITH ENCRYPTED PASSWORD '<PASSWORD>';

Weisen Sie diesem folgende Rechte/Privileges zu:

GRANT ALL PRIVILEGES ON DATABASE <DATABASE> TO <USERNAME>;

Properties

Die so erzeugten Datenbank-Artefakte müssen nun in den smart.finder SDI Properties Dateien für die JDBC Connection verwendet werden (siehe Konfigurationsdateien).

# jndi|jdbc
db.use=

# if db.use=jndi, this is the place to put the jndi name
db.jndi.name=

# The type of the db system e.g: hsqldb | postgresql | sqlserver | oracle
# This property is required by map.apps.
db.type=

# JDBC driver
#
# Postgres: org.postgresql.Driver
# MS SQL Server: com.microsoft.sqlserver.jdbc.SQLServerDriver
# Oracle: oracle.jdbc.driver.OracleDriver
#
db.jdbc.driver=

# JDBC connection URL
#
# Oracle: jdbc:oracle:thin:@<HOST>:<PORT>:<DATABASE>
# MS SQL Server: jdbc:sqlserver://<HOST>:<PORT>;DATABASENAME=<DATABASE>
# PostreSQL: jdbc:postgresql://<HOST>:<PORT>/<DATABASE>
#
db.jdbc.url=

# JDBC user
db.jdbc.username=<USERNAME>

# JDBC user password
db.jdbc.password=<PASSWORD>

# Hibernate dialect to be used
#
# PostgreSQL: de.conterra.sdi.common.db.dialect.PostgreSQL9MapDialect
# Oracle: org.hibernate.dialect.Oracle10gDialect
# MS SQL Server: org.hibernate.dialect.SQLServerDialect
#
db.hibernate.dialect=