7 Harjoitus 6: Käyttäjähallinta

Harjoituksen sisältö - Harjoitellaan käyttäjäroolien ja oikeuksien asettamista.

Harjoituksen tavoite - Harjoituksen jälkeen opiskelija tuntee

7.0.1 Valmistautuminen

Avaa pgAdmin selaimeen ja kirjaudu sisään. Avaa Query Tool (Valitse trainingdatabase -> Ylhäältä Tools -> Query Tool).

7.1 Harjoitus 6.1: Käyttäjäroolit

Oletusarvoisesti PostgreSQL:ään luodaan postgres-niminen rooli ja samanniminen tietokanta. Aiemmin harjoituksissa on luotu koulutusta varten tietokanta (trainingdatabase). Voit luoda uuden käyttäjän tietokantapalvelimeen seuraavalla SQL-komennolla:

DROP ROLE IF EXISTS matti;

CREATE ROLE
matti
LOGIN PASSWORD
'1234'
CREATEDB
VALID UNTIL
'infinity';

CREATEDB-parametri määrittää roolille oikeudet tietokantojen luomiseen. VALID-parametri määrittää roolin voimassaolon ajan (tässä tapauksessa ikuisesti).

Luo uusi ylläpitäjän rooli seuraavalla SQL-komennolla:

DROP ROLE IF EXISTS dba;

CREATE ROLE
dba
LOGIN PASSWORD
'1234'
SUPERUSER
VALID UNTIL
'2024-1-1 00:00';

Uudella roolilla on ylläpitäjän oikeudet (SUPERUSER) ja se on voimassa 1. tammikuuta 2024 asti. Voit tarkastella käyttäjien tietoja pgAdminin puuhierarkian kohdassa Login/Group Roles.

7.2 Harjoitus 6.2: Ryhmäroolit

Ryhmäroolit (group roles) luodaan seuraavalla SQL-komennolla:

DROP ROLE IF EXISTS admins;

CREATE ROLE
admins
INHERIT;

INHERIT-parametri tarkoittaa sitä, että kaikki our_admins-ryhmän sisällä olevat roolit perivät ryhmän oikeudet. Poikkeuksena, superuser-oikeus ei koskaan periydy PostgreSQL:ssä.

Lisää roolit matti ja dpa ryhmään admins seuraavasti:

GRANT
admins
TO
matti, dba;

Voit vaihtaa rooleja komennolla SET ROLE:

SET ROLE
matti;

Käytössä olevan roolin voi tarkistaa komennolla:

SELECT current_user;

Kokeile komentoa SELECT session_user.

SELECT ...

Mikä on current_user ja session_user välinen ero?

7.3 Harjoitus 6.3: Roolien lisääminen käyttöliittymässä

Roolien hallinta on selkeämpää pgAdminin käyttöliittymässä. Lisää uusi käyttäjä, valitse salasana ja lisää hänet myös admins-ryhmärooliin, huomaa SQL-välilehdelle muodostuva SQL-lauseke. Roolien poistaminen tapahtuu DROP ROLE < roolin nimi > -komennolla.