Sunday, August 10, 2008

Re: [pgsql-de-allgemein] Erlaubte Zeichen in Datenbanknamen

Hallo Laurenz,

Albe Laurenz schrieb:
> udono schrieb:
>>>> Gibt es noch weitere erlaubte Zeichen oder andere Sachen die ich bei
>>>> der Prüfung beachten muss?
> Ich glaube, Deine Beschreibung (63 alphanumerische Zeichen) ist nicht
> korrekt: es sind 64 *Bytes* (inklusive dem 0-Byte am Ende), und alle
> Zeichen sind möglich.
> Siehe bpchar_name in src/backend/utils/adt/varchar.c.
> Allerdings ist es intelligent, die Eingabe auf Kleinbuchstaben, Ziffern und
> Unterstriche zu beschränken.
Ok, da wir den Datenbanknamen immer quoten, dürfte es auch keine
Probleme bereiten die Großbuchstaben mit hinzuzunehmen. Danke für
den Tipp mit der varchar Definition.

>>> IIRC nicht, aber ich versteh nicht ganz, warum Du den Namen einer DB als
>>> Benutzereingabe prüfen willst/mußt. Der DB-Name ist doch eher, ähm,
>>> statisch.
>> Ja, bei der Software handelt es sich um ein ERP (Enterprice Resource
>> Planning) Tool für kleine und mittelgroße Unternehmen.
>> Wenn man eine neue einzelne Firma anlegt, dann werden alle Daten in
>> eine Postgresdatenbank eingefügt. Deren Name muss der Administrator
>> angeben um sie neu erstellen zu lassen. Wir haben diesen Dialog in
>> das GUI gelegt, um die Konfiguration zu vereinfachen.
>> Bei der Eingabe des Datenbank-Namens wird gleich auf Validität
>> geprüft. (Also es sind nur alpha-nummerische Zeichen erlaubt und
>> Unterstrich, das erste Zeichen muss ein Buchstabe sein, die Anzahl
>> der eingegebenen Zeichen ist auf 63 begrenzt.) Quasi
>> Fehlervermeidung, statt Fehlermeldung...
> Ein Bedenken gegen das Design möchte ich kundtun:
> Das bedeutet, daß das Programm mit einem User mit hohen Privilegien
> (CREATEDB oder gar SUPERUSER) an die Datenbank verbunden sein muß.
Nur dann wenn du das möchtest. Im Prinzip legt man sich einen
Datenbankuser an, der CREATEDB Rechte bekommt oder auch nicht, wenn
man wie von Dir angeregt, das Erstellen einer Datenbank aus dem GUI
vermeiden möchte.
Für den Betrieb der Software ist es auch nicht nötig, über Datenbank
Superuser-Rechte zu verfügen.

> Vielen Leuten macht das vielleicht nichts aus, aber es gibt Menschen
> (und Unternehmen), für die sowas ein Ausschließungsgrund für eine
> Software ist.
Ja, das mag sein. Aber es gibt keinen Zwang seinen Datenbankbenutzer
mit Superuser- oder createdb Rechten auszustatten. Nur wenn man über
die GUI Datenbanken anlegen möchte, braucht man diese Rechte.

Aber danke für den Hinweis, ich hab mir eine Notiz gemacht, in der
Installationanleitung auf die entstehenden Sicherheitsprobleme
hinzuweisen, wenn Datenbankbenutzer über CREATEDB oder gar SUPERUSER
Rechte verfügen. Das wird besonders dann kritisch, wenn noch weitere
Portgresdatenbanken für andere Zwecke benutzt werden.

> Warum kann das nicht einfach ein neues Schema statt einer neuen
> Datenbank sein?
Schema haben wir noch nicht implementiert. Wir benutzen momentan
noch einen selbstgestrickten ORM (aus TinyERP) den wir bis Ende
nächsten Jahres durch SQL-Alchemie und Elixir ersetzen wollen. Ich
denke dann ist der Zeitpunkt gekommen, Schema zu implementieren.

Vielen Dank für Deine guten Tipps!

Schöne Grüße

Udo Spallek

--
Sent via pgsql-de-allgemein mailing list (pgsql-de-allgemein@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-de-allgemein

No comments: