Login
Newsletter
Werbung

Do, 9. Februar 2006, 00:00

OpenLogos 1.0.1 Installation und Anwendung

Datenbank-Konfiguration

Bisher haben wir über den Datenbankadministrator-Benutzer postgres auf die Datenbank zugegriffen. Für OpenLogos legen wir einen PostgreSQL-Benutzer namens logos an. Er soll keine anderen Datenbanken erstellen dürfen. Als Passwort benutze ich in dieser Installation das Wort »geheim«.

Achtung: Um die Datenbankkonfiguration möglichst einfach zu halten, wird logos mit Datenbankadministrator-Rechten ausgestattet. Wem dies zuwider ist, dem gratuliere ich zu seinem Sicherheitsbewusstsein und den bitte ich an dieser Stelle sofort zum nächsten Abschnitt Konfiguration der Datenbankrechte zu springen.

> sudo -u postgres createuser --adduser --no-createdb --pwprompt --encrypted logos
Enter password for new user:
Enter it again:

Das Passwort müssen wir auch in der OpenLogos-Konfigurationsdatei hinterlegen:

> grep Database_Password /home/local/share/openlogos/bin/server.properties
Database_Password=geheim

Wie in /usr/share/doc/odbc-postgresql/README.Debian beschrieben, konfigurieren wir nun den PostgreSQL-ODBC-Treiber.

> sudo odbcinst -i -d -f /usr/share/psqlodbc/odbcinst.ini.template
> sudo cat /usr/share/doc/odbc-postgresql/examples/odbc.ini.template >> /etc/odbc.ini

Die Datei /etc/odbc.ini ergänzen wir nun mit unseren Daten aus der Datei /home/local/share/openlogos/bin/server.properties.

> cat /etc/odbc.ini
[LogosDB]
Description = OpenLogos
Driver = PostgreSQL
Trace = No
TraceFile = /tmp/psqlodbc.log
Database = ESENSE
Servername = localhost
UserName = logos
Password = geheim
Port = 5432
Protocol = 6.4
ReadOnly = Yes
RowVersioning = No
ShowSystemTables = No
ShowOidColumn = No
FakeOidIndex = No
ConnSettings =

Testen wir jetzt mal den Zugriff auf unsere Datenbank über ODBC.

> isql LogosDB
SQL> help abc_flag
| TABLE_QUALIFIER | TABLE_OWNER | TABLE_NAME [...]
| | public | abc_flag [...]
[...]
SQL> select * from abc_flag
+--------------+---------+----------------+--------------+
| language_code| abc_code| word_class_code| target_switch|
+--------------+---------+----------------+--------------+
| 03 | Z | 20 | N |
[...]
SQL> quit

Sollte beim Zugriff per isql eine Fehlermeldung mit dem Hinweis SQLConnect failed erfolgen, könnte ein PostgreSQL-Restart helfen.

> sudo /etc/init.d/postgresql-8.0 restart

Konfiguration der Datenbankrechte

(Wer sich dazu entschlossen hat, dem PostgreSQL-Benutzer logos Datenbankadministrator-Rechte zu geben, darf diesen Abschnitt ignorieren.)

Mit dem nachfolgenden Befehl wird der Benutzer logos mit keinerlei Rechten angelegt:

> sudo -u postgres createuser --no-adduser --no-createdb --pwprompt --encrypted logos
Enter password for new user:
Enter it again:

Die Erlaubnis, lesend auf die Tabelleninhalte zuzugreifen, muss man logos für jede einzelne Tabelle geben. Ein paar Shell-Befehle erledigen das für uns. Es gibt sicher elegantere Lösungen mit Datenbankprozeduren.

> echo "GRANT SELECT ON TABLE "> logos-grant.sql
> sudo -u postgres psql -c "\d" ESENSE | grep "^ public" | cut -d"|" -f2 \
| while read lin; do echo '"'${lin}'"'; done | paste -s -d ",">> logos-grant.sql
> echo "TO logos;">> logos-grant.sql
> cat logos-grant.sql | sudo -u postgres psql ESENSE
> rm logos-grant.sql

Da OpenLogos per ODBC zugreift, ist der nachfolgende Punkt nur notwendig, wenn man als Benutzer logos mit psql arbeiten möchte, Da wir später aber sicher auch ein wenig mit der Datenbank »spielen« möchten, vervollständigen wir noch die Konfiguration.

Standardmäßig werden beim Anmelden an der Datenbank nur Benutzernamen akzeptiert, die auch als Systembenutzer vorhanden sind. Dies ändern wir speziell für unsere Datenbank und unseren Benutzer. Die dafür notwendige zusätzliche Zeile in der Datei /etc/postgresql/8.0/main/pg_hba.conf muss unbedingt oberhalb der "local all all"-Zeile eingefügt werden. Details hierzu findet man in der PostgreSQL-Dokumentation unter /usr/share/doc/postgresql-doc-8.0/html/client-authentication.html.

> cat /etc/postgresql/8.0/main/pg_hba.conf
[...]
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# for OpenLogos
local ESENSE logos md5
# "local" is for Unix domain socket connections only
local all all ident sameuser
[...]

Nachdem die Konfigurationsdatei neu eingelesen wurde, sollte die Anmeldung mit dem neuen Benutzer und dem entsprechenden Passwort funktionieren.

> sudo /etc/init.d/postgresql-8.0 reload
> psql -U logos -W ESENSE
ESENSE=> select * from abc_flag;
 language_code | abc_code | word_class_code | target_switch
---------------+----------+-----------------+---------------
 03 | Z | 20 | N
[...]
ESENSE=> \q

Jetzt springen wir wieder zurück in den vorherigen Abschnitt, um das Passwort in die OpenLogos-Konfigurationsdatei einzutragen und mit der ODBC-Konfiguration fortzufahren.

Anwendung

Endlich können wir unseren ersten Übersetzungslauf starten. Im Build-Verzeichnis von OpenLogos ist hierfür eine Datei mit einem kurzen deutschen Satz und eine passende Steuerdatei namens apitest_settings.txt für die Übersetzung vorbereitet. Der Name der Ausgabedatei muss der Bildschirmausgabe entnommen werden. Die angezeigten Fehler sind normal, solange sich der übersetzte Text in der Ausgabedatei befindet.

Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung