- Een nieuwe gebruiker maken
- Bestaande gebruikersrechten bekijken
- Bestaande gebruikersrechten wijzigen
- Toewijzen
SUPERUSER
Toestemming - Machtigingen intrekken
- Toewijzen
Het wijzigen van gebruikersrechten binnen PostgreSQL kan variëren van vrij eenvoudig tot extreem complex, afhankelijk van de permissieve granulariteit die daadwerkelijk vereist is. In de meeste gevallen is het echter de krachtige ALTER USER
commando dat moet worden gebruikt om alles te doen, van gebruikers toestaan in te loggen, databases te maken, rollen te beheren en zelfs een SUPERUSER
te worden account.
We gaan kort in op de kracht van de ALTER USER
commando, zodat u gemakkelijk een verscheidenheid aan machtigingstoewijzingen en verwijderingen kunt uitvoeren als dat nodig is.
Een nieuwe gebruiker maken
Voordat we ingaan op veranderen gebruikersrechten, moeten we een nieuw gebruikersaccount aanmaken (gewoonlijk een ROLE
genoemd) ) om mee te rommelen.
Om te beginnen zullen we alle bestaande gebruikers opsommen:
=# SELECT usename FROM pg_user;
usename
----------
postgres
(1 row)
Standaard postgres
is meestal de enige bestaande gebruiker, dus we willen een nieuwe gebruiker maken van librarian
om onze library
te beheren databank. Dit kan worden bereikt met behulp van de CREATE USER
commando:
=# CREATE USER librarian;
CREATE ROLE
=# SELECT usename FROM pg_user;
usename
-----------
postgres
librarian
(2 rows)
Bestaande gebruikersrechten bekijken
Het kan vaak handig zijn om de bestaande machtigingen die aan de gebruikers in het systeem zijn toegewezen, te onderzoeken. Dit kan eenvoudig worden bereikt met de \du
commando van de psql
prompt:
=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------+-----------
librarian | | {}
postgres | Superuser, Create role, Create DB, Replication | {}
Dat kunnen we duidelijk zien, ook al hebben we nu een nieuwe librarian
. toegevoegd gebruiker, we moeten het een aantal rechten toewijzen.
Bestaande gebruikersrechten wijzigen
Nu onze librarian
gebruiker bestaat, kunnen we ALTER USER
gaan gebruiken om de machtigingen te wijzigen die zijn verleend aan librarian
.
Het basisformaat van ALTER USER
bevat de naam van de gebruiker (of ROLE
) gevolgd door een reeks options
om PostgreSQL te informeren welke toegestane wijzigingen moeten worden aangebracht:
=# ALTER USER role_specification WITH OPTION1 OPTION2 OPTION3;
Deze opties variëren van CREATEDB
, CREATEROLE
, CREATEUSER
, en zelfs SUPERUSER
. Bovendien hebben de meeste opties ook een negatieve tegenhanger, waardoor het systeem wordt geïnformeerd dat u weigeren de gebruiker die bepaalde toestemming. Deze optienamen zijn hetzelfde als hun toewijzingstegenhanger, maar worden voorafgegaan door NO
(bijv. NOCREATEDB
, NOCREATEROLE
, NOSUPERUSER
).
SUPERUSER
Toestemming
Nu we de basis begrijpen van het maken van gebruikers en het gebruik van ALTER USER
om machtigingen te wijzigen, kunnen we heel eenvoudig de SUPERUSER
. gebruiken optie om onze librarian
toe te wijzen gebruiker SUPERUSER
toestemming:
=# ALTER USER librarian WITH SUPERUSER;
ALTER ROLE
En ja hoor, als we onze lijst met machtigingen nu weergeven, zien we librarian
heeft de nieuwe SUPERUSER
toestemming die we willen:
=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------+-----------
librarian | Superuser | {}
postgres | Superuser, Create role, Create DB, Replication | {}
Machtigingen intrekken
In het geval dat we een fout maken en een toestemming toewijzen die we later willen intrekken, geef dan gewoon dezelfde ALTER USER
commando maar voeg de NO
. toe prefix voor de permissieve opties die moeten worden ingetrokken.
We kunnen bijvoorbeeld SUPERUSER
. verwijderen van onze librarian
gebruiker vindt dit leuk:
=# ALTER USER librarian WITH NOSUPERUSER;
ALTER ROLE
=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------+-----------
librarian | | {}
postgres | Superuser, Create role, Create DB, Replication | {}