Skip site navigation (1) Skip section navigation (2)

Re: Erlaubte Zeichen in Datenbanknamen

From: udono <udono(at)gmx(dot)net>
To: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Re: Erlaubte Zeichen in Datenbanknamen
Date: 2008-08-10 13:27:11
Message-ID: 489EECAF.9030903@gmx.net (view raw or flat)
Thread:
Lists: pgsql-de-allgemein
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

In response to

pgsql-de-allgemein by date

Next:From: udonoDate: 2008-08-10 13:43:57
Subject: Re: Erlaubte Zeichen in Datenbanknamen
Previous:From: Markus WannerDate: 2008-08-06 10:50:16
Subject: Re: [pgsql-de-allgemein] Re: [pgsql-de-allgemein] Re: [pgsql-de-allgemein] RE: [pgsql-de-allgemein] In Funktion prüfen ob Zeile existiert

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group