- Tworzenie nowego użytkownika
- Wyświetlanie istniejących uprawnień użytkownika
- Zmienianie istniejących uprawnień użytkownika
- Przypisywanie
SUPERUSERZezwolenie - 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 | {}