Re: Podstawy PostgreSQL 8
On Sat, 8 Dec 2007, sdoman1@interia.pl wrote:
> >
> > 2. Logowanie
> >
> > MySQL:
> > mysql -u root -p
> >
> > PostgreSQL:
> > Do tej pory robiłem tak, że "su" na użytkownika systemowego postgres i
> > wtedy "psql", bo jak robiłem tak:
> >
> > # psql -U postgres -W
> > Password for user postgres:
> > psql: FATAL: Ident authentication failed for user "postgres"
> >
> > pomimo dobrego hasła, o co chodzi?
> >
Może: psql -U postgres -h localhost <baza>
> >
> Musisz odpowiednio edytować plik pg_hba.conf
> Z tego co widzę na lokalne połączenia masz wybraną opcję identyfikacji
> użytkowników z wykorzystaniem serwera ident. "Ident authentication failed"
>
Z tą róznicą, że to ident w wypadku połączeń po unix socket oznacza
tylko porównywanie nazw użytkownika (z ewentualnymi mapowaniami) i nie wymaga
serwera ident.
> > 3.Prawa
> >
> > MySQL:
> > grant all on db_name.* to admin_bazy identified by 'haselo';
> >
> > i już mam roota bazy, co w większości przypadków mi wystarcza, przy
> > czym automatycznie tworzony jest użytkownik z takim hasłem, jak można
> > uzyskać to samo pod PostgreSQL, czyli stworzyć bazę i stworzyć roota
> > dla tej bazy?
> >
> > --
> Bazę tworzysz albo z konta systemowego :
> createdb -U nazwa_uzytkownika nazwa_bazy
> Password:
> CREATE DATABASE
> lub
> psql template1
> CREATE DATABASE nazwa
>
> Domyślnie tylko właściciel bazy danych ma dostęp do tabel bazy danych.
> Dla reszty użytkowników musisz użyć polecenia GRANT.
>
W nowych wersjach postgresa (niestety chyba poetchowych) można nadać
uprawnienie do connecta do samej bazy - dużo wygodniejsze jest to niż
grzebanie po tabelkach. BTW. przy domyślnych ustawieniach każdy
uzytkownik może tworzyć tabele w każdej bazie do której może się
podłączyć a domyślna zawartość pg_hba.conf pozwala łączyć się po
localhost każdemu użytkownikowi do każdej bazy.
Pozdrawiam.
--
Liwiusz Ociepa
Reply to: