-
Käyttöoikeudet
PostgreSQL-oikeudet
PostgreSQL 17 -oikeudet
PostgreSQL 17 -tietokantaesiintymissä käyttäjille on annettava erikseen käyttöoikeus tietokantaan, jotta he voivat luoda tauluja määritetyn tietokannan public-skeemaan. Tämä voidaan tehdä seuraavasti komentorivityökaluilla.
Kun luot uuden käyttäjän, voit käyttää --database-lippua antaaksesi käyttäjälle oikeuden luoda uuden taulun tietyn tietokannan public-skeemaan:
Komento, jolla olemassa olevalle tietokantakäyttäjälle annetaan oikeus luoda tauluja:
Selainkäyttöliittymässä voi myös luoda käyttäjiä ja muokata heidän oikeuksiaan.
Uuden käyttäjän luominen tietokantaoikeuksilla:
- Valitse esiintymä Instances-sivulta
- Siirry sen Users-välilehdelle
- Paina Create User
Voit myös muokata olemassa olevien käyttäjien oikeuksia Users-välilehdellä valitsemalla 'Manage Access' avattavasta valikosta 'Actions'-sarakkeessa.
Käyttäjälle vain luku -oikeuden antaminen tauluun
Taulun omistajana tai root-käyttäjänä voit suorittaa seuraavan SQL-komennon:
Käyttäjälle luku- ja kirjoitusoikeuden antaminen tauluun
Jos haluat sallia käyttäjien lisätä, muokata, poistaa ja lukea rivejä tietokannassasi, voit antaa käyttäjälle seuraavat oikeudet:
PostgreSQL 14:n ja 17:n väliset muutokset
PostgreSQL 15 toi oletusoikeuksiin hyvin tarkkarajaisen muutoksen, joka vaikuttaa siihen, miten Pukki hallitsee käyttäjiä ja heidän käyttöoikeuksiaan.
Erot siinä, miten Pukki hallitsee tietokantaoikeuksia
PostgreSQL 14:ssä tietokantakäyttäjille oletuksena myönnetyt oikeudet sallivat uusien taulujen luomisen minkä tahansa tietokannan public-skeemaan kyseisessä tietokantaesiintymässä. PostgreSQL 15 poisti create-oikeuden kaikilta tietokantakäyttäjiltä (paitsi tietokannan omistajalta) public-skeemasta, jota käytetään oletusskeemana. Nyt uusille käyttäjille on annettava erikseen create-oikeus skeemaan, yleensä tietokannan oletus-public-skeemaan.
Lyhyesti sanottuna, kun käyttäjälle perutaan tai myönnetään käyttöoikeus PostgreSQL 14 -tietokantaan Pukissa, oikeuksia muuttava kysely näyttää suunnilleen tältä:
PostgreSQL 17 -tietokantaesiintymässä samat selainkäyttöliittymän tai CLI-työkalun komennot johtavat tämänkaltaiseen oikeuksia muuttavaan kyselyyn:
Voit aina ottaa root-käyttöoikeuden käyttöön tietokantaesiintymässä ja kirjautua sisään root-käyttäjänä muokataksesi oikeuksia vapaammin.
Huomio oikeuksista
Jos sinulla on vain vähän tai ei lainkaan aiempaa kokemusta PostgreSQL:stä, suosittelemme tutustumaan siihen, miten PSQL:n oikeudet liittyvät tietokantoihin, skeemoihin ja tauluihin. Tässä on yksi opas, josta voi olla hyötyä.
Sekaannusten välttämiseksi kannattaa pitää mielessä, että PostgreSQL 14:ssä oletusoikeudet sallivat jokaisen käyttäjän yhdistää mihin tahansa tietokantaan ja luoda tauluja oletus-public-skeemaan. He eivät kuitenkaan voi käyttää olemassa olevia tauluja tai muita skeemoja ilman erillistä lupaa, eivätkä he voi luoda uusia skeemoja.
Tyypillisesti PSQL:ssä objektin omistaja (objekti voi olla tietokanta, skeema, taulu jne.) on ainoa, jolla on siihen liittyviä oikeuksia, ellei toisin ole määritetty. Tämä yhdessä sen kanssa, että oikeudet eivät periydy hierarkiassa "alaspäin", voi aiheuttaa hämmennystä. Oikeudet skeemaan eivät tarkoita, että käyttäjällä olisi oikeuksia sen sisältämiin tauluihin. Lisätietoja löytyy virallisesta oikeuksia käsittelevästä dokumentaatiosta.
Oikeuksien esimerkkikäyttö
Nämä kyselyt sallivat käyttäjän example_user lukea dataa taulusta example_table. Huomaa, että nämä kaksi kyselyä ovat identtisiä, kunhan hakupolkua ei ole muutettu.
GRANT SELECT ON example_table TO example_user;
GRANT SELECT ON public.example_table TO example_user;
Huomaa, että example_user tarkoittaa tässä roolia, joka voi olla myös ryhmä. Nämä kyselyt loisivat uuden ryhmän, liittäisivät käyttäjän siihen ja antaisivat oikeuden lukea dataa kaikista public-skeeman tauluista.
CREATE ROLE example_group;
GRANT example_group TO example_user;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO example_group;
Oikeuksien hallinnan helpottamiseksi suosittelemme luomaan ryhmiä ja liittämään käyttäjiä niihin sen sijaan, että oikeuksia säädettäisiin käyttäjäkohtaisesti.