Brauche Hilfe

zu erst :smiley: ich finde euer forum klasse ,schönes forum mit vielen netten leuten die einen helfen :smiley:

nun zum problem :stuck_out_tongue:

Also ich will auf meinen Linux (ubuntu)-rechner einen PG-Server laufen lassen , mit dazugehörigen Client und ich will da auch eine datenbank erstellen und paar tabellen

ich habe die aktuelle version von PG genommen ,die auf der PG seite war ,die Version 8.3.6-1 aber finde nirgendswo den passsenden client (psql) für den server, den server kann ich starten aber ich kann da nicht richtig zugreifen da mir der client fehlt :frowning:

hoffe ihr könnt mir helfen

Ubuntu bringt doch passende Pakete mit, die auch den Client enthalten:

kretschmer@tux:~$ apt-cache search postgresql-client
postgresql-client-common - manager for multiple PostgreSQL client versions
postgresql-client - front-end programs for PostgreSQL (supported version)
postgresql-client-8.3 - front-end programs for PostgreSQL 8.3

Warum nutzt Du die nicht? Und, wenn Du PG aus den Sourcen bastelst, dann ist da auch der Client dabei, nennt sich psql.

Also, einfach mal ganz mutig ‘psql’ in einer Konsole tippen…

Andreas

erstrmal thx für deine schnelle antwort hab es hinbekommen ,hehe dank dir :p !

aber nun hab ich ein neues problem ich hab auf dem server 1 DB laufen und 3 tabellen und 2 user , ich will es so machen ,das der eine user nur lesezugriff auf der DB hat


ich hab überlegt das ich entweder was am user bearbeiten muss oder an der DB aber an der kan man unter PG nur create ,temp machen also muss es am user liegen, ich hab im internet geguckt aber nix hilfreiches gefunden

weisst du oder vllt ihr was ??

nur ein kleiner denkanstoss :p

GRANT und REVOKE, beschrieben im Handbuch.

Andreas

hehe ja aber mit GRANT man nur die einzelen tabellen auf SELECT für dne User setzen aber er könnte immer noch CREATE und UIPDATE benutzen :p

nein,ja, nein.

Andreas

Du kannst mit GRANT mehr Zugriffsrchte vergeben - und mit REVOKE auch mehr Rechte entfernen. Aber näheres steht nun wirklich in der Online Dokumentation.

hehe thx für eure tipps

nur leider is es so das ich die Rechte auf die ganze datenbank auslegen will und nicht auf einzeln tabellen .
hab mir grant und revoke angeguckt aber keine richtige antwort gefundne

ich hab mir eher sowas vorgestellt wie

GRANT SELECT ON DATABASE db-name for user;

Es gibt kein ‘select from database’, und somit auch kein GRANT dafür. Guggst Du SQL-Spec.

Andreas

also ich kann beim besten willen nix finden ,keine ahnung woran das liegt aber ich kriege das einfach nicht hin


ich bräuchte mehr details,bitte :smiley:
oder am besten eine gute erklärung mit einen beispiel :smiley:

Du musst den Namen der Datenbank und den Namen des Benutzers fest vorgeben und kannst diese nicht dynamisch mittels SELECT aus der Datenbank auslesen.

ich will ja ,dass zb. der admin der datenbank (ich) alles machen kann und die anderen user , nur die select funktionen haben auf der GANZEN DATENBANK also das heisst das die gäste kein insert,update,create haben :slight_smile:

Wie wärs, wenn du einfach mal in die Online Dokumentation schaust, wie genau der Befehl genutzt wird? Dort stehen auch Beispiele.

hehe das habe ich aber nix hilfreiches gefunden

ich finde das nur das man die zugriffe auf der tabelle ändern kann aber ich es ja über die GANZE DATENBANK machen

ALSO!

ich habe es mit REVOKE :

RE> VOKE ALL PRIVILEGES> ON DATABASE > db-name > FROM > user

und GRANT :

GRANT SELECT ON > tabelle > TO > user

hinbekommen aber der user kann immernoch mit CREATE TABLE eine Tabelle erstellen und das will ich unterbinden nur wie ??
hab gehört man kann in der tabelle user was ändern aber keine ahnung wie

:frowning:



test=# revoke all on schema public from public;
REVOKE
test=*# commit;
COMMIT
test=# \q
kretschmer@tux:~$ psql -U gast test
Welcome to psql 8.3.6, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

test=> create table public.gast_test5(i int);
ERROR:  permission denied for schema public
test=!>

Du mußt ‘public’ (ROLE) die Rechte entziehen, dann klappts auch mit den Losern, ähm, Usern.

Andreas

thx thx 1000x thx :smiley:

ich habs endlich so wie ich es haben will :smiley:

ich danke euch allen :slight_smile:

Hallo,

den Befehl hab ich ausgeführt, nur leider ist meine Datenbank wohl nicht zu erreichen.

otrs:~# psql
psql: could not connect to server: Datei oder Verzeichnis nicht gefunden
Is the server running locally and accepting
connections on Unix domain socket “/var/run/postgresql/.s.PGSQL.5432”?

Ich verwende Debian Lenny. Wie kann ich bitte pgsql starten?

als root:

/etc/init.d/postgresql-8.3 start



Andreas

Hallo Andreas,

das ist ja das Komische, da kommt nichts:

otrs:~# /etc/init.d/postgresql-8.3 start
otrs:~# psql
psql: could not connect to server: Datei oder Verzeichnis nicht gefunden
        Is the server running locally and accepting
        connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

Im Ordner /var/log/postgresql/ sind auch keine Log-Dateien

Ich hab postgresql per “aptitude install postgresql” installiert.