it-swarm.com.de

Wie erstelle ich einen Benutzer für eine Datenbank in postgresql?

Ich habe PostgreSQL 8.4 auf meinem CentOS-Server installiert und über Shell eine Verbindung zum Root-Benutzer hergestellt und auf die PostgreSQL-Shell zugegriffen.

Ich habe die Datenbank und den Benutzer in PostgreSQL erstellt.

Beim Versuch, über mein PHP Skript eine Verbindung herzustellen, wurde angezeigt, dass die Authentifizierung fehlgeschlagen ist.

Wie erstelle ich einen neuen Benutzer und wie erteile ich ihm Berechtigungen für eine bestimmte Datenbank?

184
user925355

Von CLI:

$ su - postgres 
$ psql template1
template1=# CREATE USER tester WITH PASSWORD 'test_password';
template1=# GRANT ALL PRIVILEGES ON DATABASE "test_database" to tester;
template1=# \q

PHP (wie auf localhost getestet, funktioniert es wie erwartet):

  $connString = 'port=5432 dbname=test_database user=tester password=test_password';
  $connHandler = pg_connect($connString);
  echo 'Connected to '.pg_dbname($connHandler);
311
Vidul

Erstellen Sie den Benutzer mit einem Passwort:

http://www.postgresql.org/docs/current/static/sql-createuser.html

CREATE USER name [ [ WITH ] option [ ... ] ]

where option can be:

      SUPERUSER | NOSUPERUSER
    | CREATEDB | NOCREATEDB
    | CREATEROLE | NOCREATEROLE
    | CREATEUSER | NOCREATEUSER
    | INHERIT | NOINHERIT
    | LOGIN | NOLOGIN
    | REPLICATION | NOREPLICATION
    | CONNECTION LIMIT connlimit
    | [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password'
    | VALID UNTIL 'timestamp'
    | IN ROLE role_name [, ...]
    | IN GROUP role_name [, ...]
    | ROLE role_name [, ...]
    | ADMIN role_name [, ...]
    | USER role_name [, ...]
    | SYSID uid

Gewähren Sie dann die Benutzerrechte für eine bestimmte Datenbank:

http://www.postgresql.org/docs/current/static/sql-grant.html

Beispiel

grant all privileges on database db_name to someuser;
40
Denys Séguret