- Tworzenie nowego użytkownika
- Wyświetlanie istniejących uprawnień użytkownika
- Zmienianie istniejących uprawnień użytkownika
- Przypisywanie
SUPERUSER
Zezwolenie - Odwoływanie uprawnień
- Przypisywanie
Modyfikowanie uprawnień użytkownika w PostgreSQL może wahać się od raczej prostych do bardzo złożonych, w zależności od wymaganej szczegółowości zezwalającej. Jednak w większości przypadków jest to potężny ALTER USER
polecenie, które powinno być używane do robienia wszystkiego, od umożliwienia użytkownikom logowania, tworzenia baz danych, zarządzania rolami, a nawet zostania SUPERUSER
konto.
Pokrótce przyjrzymy się możliwościom ALTER USER
polecenie, dzięki czemu można łatwo wykonać różne przypisania i usunięcia uprawnień, gdy zajdzie taka potrzeba.
Tworzenie nowego użytkownika
Zanim przejdziemy do zmiany uprawnienia użytkownika, powinniśmy założyć nowe konto użytkownika (powszechnie określane jako ROLE
) do zabawy.
Na początek wymienimy wszystkich istniejących użytkowników:
=# SELECT usename FROM pg_user;
usename
----------
postgres
(1 row)
Domyślnie postgres
jest zazwyczaj jedynym istniejącym użytkownikiem, więc chcemy utworzyć nowego użytkownika librarian
do kontrolowania naszej library
Baza danych. Można to zrobić za pomocą CREATE USER
polecenie:
=# CREATE USER librarian;
CREATE ROLE
=# SELECT usename FROM pg_user;
usename
-----------
postgres
librarian
(2 rows)
Wyświetlanie istniejących uprawnień użytkownika
Często przydatne może być zbadanie istniejących uprawnień przydzielonych użytkownikom w systemie. Można to łatwo osiągnąć za pomocą \du
polecenie z psql
monit:
=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------+-----------
librarian | | {}
postgres | Superuser, Create role, Create DB, Replication | {}
Widać to wyraźnie, mimo że dodaliśmy nowego librarian
użytkownika, musimy przypisać mu pewne uprawnienia.
Zmiana istniejących uprawnień użytkownika
Teraz, gdy nasz librarian
użytkownik istnieje, możemy zacząć używać ALTER USER
aby zmodyfikować uprawnienia przyznane librarian
.
Podstawowy format ALTER USER
zawiera nazwę użytkownika (lub ROLE
), po której następuje seria options
aby poinformować PostgreSQL, jakie dopuszczalne zmiany należy wprowadzić:
=# ALTER USER role_specification WITH OPTION1 OPTION2 OPTION3;
Te opcje wahają się od CREATEDB
, CREATEROLE
, CREATEUSER
, a nawet SUPERUSER
. Ponadto większość opcji ma również negatywny odpowiednik, informujący system, że chcesz odrzucić użytkownikowi to konkretne uprawnienie. Te nazwy opcji są takie same jak ich odpowiedniki przypisania, ale są poprzedzone NO
(np. NOCREATEDB
, NOCREATEROLE
, NOSUPERUSER
).
Przypisywanie SUPERUSER
Zezwolenie
Teraz, gdy rozumiemy podstawy tworzenia użytkowników i używania ALTER USER
aby zmodyfikować uprawnienia, możemy po prostu użyć SUPERUSER
możliwość przypisania naszego librarian
użytkownik SUPERUSER
pozwolenie:
=# ALTER USER librarian WITH SUPERUSER;
ALTER ROLE
Oczywiście, jeśli teraz wyświetlimy naszą listę uprawnień, zobaczymy librarian
ma nowego SUPERUSER
pozwolenie, którego potrzebujemy:
=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------+-----------
librarian | Superuser | {}
postgres | Superuser, Create role, Create DB, Replication | {}
Cofnięcie uprawnień
W przypadku popełnienia błędu i przypisania uprawnień, które później chcemy cofnąć, po prostu wydaj to samo ALTER USER
polecenie, ale dodaj NO
prefiks przed dozwolonymi opcjami, które mają zostać unieważnione.
Na przykład możemy usunąć SUPERUSER
od naszego librarian
taki użytkownik:
=# ALTER USER librarian WITH NOSUPERUSER;
ALTER ROLE
=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------+-----------
librarian | | {}
postgres | Superuser, Create role, Create DB, Replication | {}