- Vytvoření nového uživatele
- Zobrazení stávajících uživatelských oprávnění
- Změna stávajících uživatelských oprávnění
- Přiřazení
SUPERUSER
Povolení - Odvolání oprávnění
- Přiřazení
Úprava uživatelských oprávnění v rámci PostgreSQL se může pohybovat od poměrně jednoduchých až po extrémně složité, v závislosti na tolerantní granularitě, která je skutečně vyžadována. Ve většině případů je to však mocný ALTER USER
příkaz, který by měl být použit k provádění všeho, od umožnění uživatelům přihlásit se, vytvářet databáze, spravovat role a dokonce se stát SUPERUSER
účet.
Krátce prozkoumáme sílu ALTER USER
tak můžete snadno provádět různá přiřazení a odebírání oprávnění podle potřeby.
Vytvoření nového uživatele
Než se pustíme do změn uživatelských oprávnění, měli bychom založit nový uživatelský účet (běžně označovaný jako ROLE
), se kterým si můžete pohrát.
Nejprve uvedeme seznam všech stávajících uživatelů:
=# SELECT usename FROM pg_user;
usename
----------
postgres
(1 row)
Ve výchozím nastavení postgres
je obvykle jediným uživatelem, který existuje, takže chceme vytvořit nového uživatele librarian
k ovládání naší library
databáze. To lze provést pomocí CREATE USER
příkaz:
=# CREATE USER librarian;
CREATE ROLE
=# SELECT usename FROM pg_user;
usename
-----------
postgres
librarian
(2 rows)
Zobrazení stávajících uživatelských oprávnění
Často může být užitečné prozkoumat stávající oprávnění přiřazená uživatelům v systému. To lze snadno provést pomocí \du
příkaz z psql
výzva:
=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------+-----------
librarian | | {}
postgres | Superuser, Create role, Create DB, Replication | {}
Jasně to vidíme, i když jsme nyní přidali nového librarian
uživateli, musíme mu přidělit nějaká oprávnění.
Změna stávajících uživatelských oprávnění
Nyní náš librarian
uživatel existuje, můžeme začít používat ALTER USER
upravit oprávnění udělená librarian
.
Základní formát ALTER USER
obsahuje jméno uživatele (nebo ROLE
) následuje řada options
informovat PostgreSQL, které povolující změny provést:
=# ALTER USER role_specification WITH OPTION1 OPTION2 OPTION3;
Tyto možnosti se pohybují od CREATEDB
, CREATEROLE
, CREATEUSER
a dokonce SUPERUSER
. Kromě toho má většina možností také negativní protějšek, který informuje systém, že chcete zamítnout uživateli toto konkrétní oprávnění. Tyto názvy voleb jsou stejné jako jejich protějšek přiřazení, ale mají předponu NO
(např. NOCREATEDB
, NOCREATEROLE
, NOSUPERUSER
).
Přidělování SUPERUSER
Povolení
Nyní, když rozumíme základům vytváření uživatelů a používání ALTER USER
pro úpravu oprávnění můžeme docela jednoduše použít SUPERUSER
možnost přiřadit našeho librarian
uživatel SUPERUSER
povolení:
=# ALTER USER librarian WITH SUPERUSER;
ALTER ROLE
Jistě, pokud nyní zobrazíme náš seznam oprávnění, uvidíme librarian
má nového SUPERUSER
povolení, které chceme:
=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------+-----------
librarian | Superuser | {}
postgres | Superuser, Create role, Create DB, Replication | {}
Zrušení oprávnění
V případě, že uděláme chybu a přidělíme oprávnění, které si později přejeme zrušit, jednoduše zadejte stejné ALTER USER
ale přidejte NO
prefix před možnostmi povolení, které mají být odvolány.
Můžeme například odstranit SUPERUSER
od našeho librarian
uživatel takto:
=# ALTER USER librarian WITH NOSUPERUSER;
ALTER ROLE
=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------+-----------
librarian | | {}
postgres | Superuser, Create role, Create DB, Replication | {}