Windows, Admin-Rechte

Hi,

habe mir aktuelles PostgreSQL 8.1.3-1 heruntergeladen (Win32) und versucht zu installieren.
Zuerst hat die Installation inkl. Service nicht funktioniert, da ich kein Administrator bin. Also ohne Service nochmal probiert - das ging.

Leider kommt jetzt beim Start ein Sicherheitshinweis:

C:\Programme\PostgreSQL\8.1\bin>postgres
Execution of PostgreSQL by a user with administrative permissions is not
permitted.
The server must be started under an unprivileged user ID to prevent
possible system security compromises.  See the documentation for
more information on how to properly start the server.

Aber ich bin doch gar kein Administrator - jedenfalls sagte mir das das Installationsprogramm. Ich habe nicht mal soviel Rechte, um einen nicht-privilegierten Benutzer anzulegen.

Kann mir jemand erklären, warum sich PostgreSQL so widerspenstig verhält? Wie kann ich PostgreSQL auf meinem Entwickler-PC zum Laufen kriegen, ohne dass es sich gleich in die Hosen macht?

gruss
Mike

Wieso macht sich Dein Entwickler-PC in die Hosen? Der hält sich doch nur an der Regeln, die ihm der “Oberadmin” vorgegen hat. Und PostgreSQL verhält sich widerspenstig? Da kann man nur sagen: Immer auf die Unschuldigen! Versuch es doch mal auf die professionelle Art eines Entwicklers und lese die Doku. Wie bei jedem anderen Programm gibt es auch für PostgreSQL einige Bedingungen, die man bei der Installation einhalten muss. Und für die Inbetriebname sind da auch noch einige Kenntnisse notwendig. Ansonsten wird es nicht funktionieren. Den “Oberadmin” wirst Du wohl auch benötigen.



mfg

fristo

Hi fristo,

danke für deine Antwort. Ich hatte allerdings auf eine klare Antwort wie “Für die Installation brauchst du Admin-Rechte, aber um PostgreSQL zu starten, darfst du keine Admin-Rechte haben.” gehofft.

Ich will nicht über Sinn oder Unsinn dieser “Ich-starte-nicht-mit-Admin-Rechten”-Regel diskutieren - das haben vermutlich andere bereits gemacht. Ich kann in der mitgelieferten Dokumentation leider keine weiteren Informationen zu diesem Thema finden. In den Installation Notes steht

For security reasons, the PostgreSQL server will not run under a user account with administrative permissions.

Da PostgreSQL also das Starten verweigert, geh ich davon aus, dass mein User administrative Rechte besitzt. Leider habe ich auch keine Möglichkeit, einen anderen User einzurichten.

Weiter heisst es im Installation Note

however if you wish to run PostgreSQL in application mode on your workstation and you have administrative permissions, you will need to use runas.exe to start the server under a non-privileged account.

Das würde ich ja gerne tun, aber wie bereits erwähnt, kann ich das nicht, da kein solcher User existiert.

Meine einzige Lösung ist also, PostgreSQL doch noch dazu zu bewegen, unter meinem normalen User zu laufen. Oder habe ich etwas übersehen? Vielleicht gibt es ja einen nicht dokumentierten Kommandozeilenparameter, der das erledigt… oder eine gepatchte Version… oder… ?

Um die ganze Sache abzukürzen: Kann ich PostgreSQL mit meinem (anscheinend privilegierten) User laufen lassen, ja oder nein?

P.S. Im Bezug auf “in die Hose machen”: Ich verstehe denn Sinn nicht, dass PostgreSQL nicht als admin laufen will. In einer Produktionsumgebung ist das ja verständlich - aber auf meinem lokalen Rechner macht das wirklich keinen Sinn und erschwert einfach nur das Leben.

Oh, es scheint auch andere Leute zu geben, die ähnlich denken… :slight_smile:

http://people.planetpostgresql.org/mha/index.php?/archives/79-Running-PostgreSQL-as-admin-on-Win32.html

Hallo mhaller,

nach der netten Beschreibung der Eigenschaften Deines Entwickler-PC’s und PostgreSQL sei hier noch mals gesagt, weder Dein Entwickler-PC’s noch PostgreSQL können etwas dazu wenn es nicht funktionert.

In der Doku steht geschrieben, dass die Installation von PostgreSQL unter den Account eines Admin erfolgen muss. Es werden auch Gründe angegeben. PostgreSQL legt aus Sicherheitsgründen einen User an, unter dem anschließend die Datenbank läuft. Ebenso müssen die Dienste angelegt und gestartet werden. Auch werden Eintragungen bezüglich Ports vorgenommen, da die Kommunikation mit dem Client über Port abgewickelt wird.

Beschränkst Du Dich bei der Installation auf die Eingabe der Passwörter und den geforderten Namen für den User (das ist der Admin von PostgreSQL) wird die Installation ohne Probleme erfolgen.

Anschließend kanst Du mit PGAdmin unter der Adresse ‘localhost’ auf die Datenbank zugreifen.

Es kann Dir hier keiner weiter helfen wenn Du schreibst, dass Du einen (anscheinend privilegierten) User hast. Für die Installation benötigst Du einen User mit Admin-Rechten. Dazwischen gibt es nichts. Frag bei der Administration nach, ob Dein User wirklich die vollen Rechte besitzt. Wenn nicht, bitte Sie darum, Dir die Admin-Rechte für Deinen Entwickler-PC zu geben. Damit ist Dir geholfen und der Administration genüge getan, da sich die Admin-Rechte nur für Deinen Entwickler-PC gelten. Ein nettes Gespäch mit der Administration hilft da immer weiter.

Hält man sich an den vorgegeben Bedingungen für die Installation von PostgreSQL und hat man ein sauberes Betriebssystem ist die Installation absolut unkritisch. Wenn Du weiterhin Probleme hast, melde Dich nochmals. Deine Vorgehensweise solltes Du dann genau beschreiben.



mfg

fristo

Hi fristo,

nochmals danke für deine Hinweise.

Zusammen mit einem Sysadmin hab ich jetzt folgendes festgestellt:

  • Die Installation klappt teilweise auch ohne Admin-Rechte. Es wird zwar ein nonprivileged Service-User angelegt, aber der Service kann nicht registriert werden, da mein Windows-User dafür zu wenig Rechte besitzt.
  • Bei der Installation ohne Service wird nicht nach einem Username für den Service gefragt, und auch nicht versucht ein Service zu installieren - daher klappt diese Installation.

Mit dem vorher automatisch angelegten Service-User kann ich Postgres nun mit runas.exe starten.