Tietokannan luominen. Viitetietojen hankkiminen. Tietokannan käyttäjien hallinta

Ensimmäinen testi, joka osoittaa, että voit käyttää tietokantapalvelinta, on yrittää luoda tietokanta. Käynnistetty PostgreSQL-palvelin voi hallita useita tietokantoja. Tyypillisesti jokaiselle projektille tai käyttäjälle käytetään erillistä tietokantaa. On mahdollista, että koneesi järjestelmänvalvoja on jo luonut tietokannan puolestasi. Sen olisi pitänyt kertoa tietokantasi nimi. Tässä tapauksessa voit ohittaa tämän osan ja siirtyä seuraavaan.

Luodaksesi uusi pohja dataa, jota tässä esimerkissä kutsutaan nimellä mydb, voit käyttää seuraavaa komentoa: $ Createdb mydb

Jos komento on suoritettu loppuun ilman viestejä, niin tämä vaihe

läpäistiin onnistuneesti ja voit ohittaa alla kirjoitetun tämän osan loppuun asti.

Jos saat jotain samanlaista kuin: Createdb: komento

ei löytynyt tämä tarkoittaa, että PostgreSQL-tuotetta ei asennettu oikein. Joko kaikkea ei asennettu tai komentotulkin hakupolkua ei ole asetettu oikein. Kokeile kutsua tätä komentoa käyttämällä koko polkua:

$ /usr/local/pgsql/bin/createdb mydb

Täysi polku

voi olla erilainen koneessasi. Ota yhteyttä järjestelmänvalvojaan tai tarkista asennusohjeet tilanteen korjaamiseksi.

Toinen saatat saada viesti: Createdb: ei voi muodostaa yhteyttä tietokantaan postgres: ei voi muodostaa yhteyttä palvelimeen: Ei tällaista tiedostoa tai hakemistoa Ei tällaista tiedostoa tai hakemistoa Onko palvelin käynnissä paikallisesti ja hyväksyykö yhteydet Unix-toimialueen socketissa "/tmp/. s. PGSQL.5432"? Tämä tarkoittaa, että palvelinta ei käynnistetty tai sitä ei käynnistetty Createb-komennon odotetulla tavalla. Tarkista jälleen asennusohjeet tai ota yhteyttä järjestelmänvalvojaan.). Jos olet järjestelmänvalvoja, katso luvusta 20 tietoja käyttäjän luomisesta.

Sinun on kirjauduttava käyttöjärjestelmään sen käyttäjän nimellä, jolla PostgreSQL on käynnissä (yleensä postgres), jotta voit luoda ensimmäisen käyttäjän DBMS:ään. Luo tietokanta -komentoa varten voit myös määrittää PostgreSQL:ssä käyttäjänimen, joka eroaa nykyisestä käyttöjärjestelmäsi käyttäjänimestä. tässä tapauksessa sinun on asetettava PostgreSQL-käyttäjänimi käyttämällä -U-vaihtoehtoa tai asettamalla ympäristömuuttuja PGUSER. Jos

haluttu käyttäjä

on olemassa, mutta sillä ei ole tietokannan luomiseen vaadittavia oikeuksia, näet seuraavan viestin: createb: tietokannan luominen epäonnistui: VIRHE: tietokannan luontioikeus estetty

Kaikilla käyttäjillä ei ole lupaa luoda uusia tietokantoja. Jos PostgreSQL hylkää tietokantojen luomisyrityksesi, koneen järjestelmänvalvojan on annettava sinulle tietokantojen luontioikeudet. Ota yhteyttä häneen tässä tapauksessa. Jos asensit PostgreSQL:n itse, sinun on kirjauduttava sisään käyttäjänä, jonka alaisuudessa käytät tietokantapalvelinta, tätä opetusohjelmaa varten.

Voit myös luoda tietokantoja millä tahansa muilla nimillä.

PostgreSQL antaa sinun luoda minkä tahansa määrän tietokantoja yhdelle palvelimelle. Tietokannan nimien tulee koostua kirjaimista ja numeroista (kirjain tulee aina olla ensin) ja olla enintään 63 tavua pitkiä. On varsin kätevää luoda tietokanta samalla nimellä kuin käyttäjä. Monet työkalut käyttävät oletuksena tätä tietokannan nimenä, joten sinun ei tarvitse napsauttaa liikaa painikkeita. Luodaksesi tällaisen tietokannan samalla nimellä kuin käyttäjä, kirjoita: $ Createdb Jos et halua käyttää tietokantaasi jatkossa, voit poistaa sen. Jos olet esimerkiksi mydb-tietokannan omistaja (luoja), voit pudottaa sen seuraavalla komennolla: $ dropdb mydb

Jos PostgreSQL:n uusin saatavilla oleva versio on sinulle tärkeä (jos ei, suosittelen harkitsemaan tarkasti), sinun on asennettava se viralliselta PostgreSQL-arkisto. Tämä voidaan tehdä noudattamalla virallisia ohjeita. Sitten sinun tulee päivittää paketit:

$ sudo apt-get päivitys

Ja asentaa PostgreSQL-komento:

$ sudo apt-get install postgresql-x.x

  • x.x- vaadittu versio

Voit tarkastella luetteloa kaikista saatavilla olevista versioista komennolla:

$ sudo apt-cache haku postgresql

1.2. Asennus käyttöjärjestelmän arkistosta

PostgreSQL asennetaan käyttöjärjestelmän arkistosta lisäämällä kaksi pääpakettia:

$ sudo apt-get install postgresql postgresql-contrib

2. PostgreSQL-konsoli

Kaikki tietokantojen ja käyttäjien käytettävissä olevat toiminnot suoritetaan konsolista psql.

2.1. Kirjaudu sisään konsoliin

Ensin sinun tulee kirjautua sisään käyttäjänä postgres, tämä on mahdollista vain oikeuksilla juuri:

# su - postgres

Käyttäjä postgres on eräänlainen PostgreSQL-tietokannan superkäyttäjä. Sitten käyttäjän alta postgres voit kirjautua sisään konsoliin:

Tai helpommin kirjaudu sisään konsoliin psql käyttäjän alla postgres:

$ sudo -u postgres psql

2.2. Konsolin lopettaminen

Kun kaikki PostgreSQL-käyttäjien ja tietokantojen toiminnot on suoritettu psql-konsolissa, ei ole heti mahdollista selvittää, kuinka siitä poistutaan. Täällä kaikki on hyvin yksinkertaista:

Postgres=#\q

Ja tarvittaessa jätämme käyttäjän postgres:

3. PostgreSQL-käyttäjät

3.1. Käyttäjän luominen

Täällä kaikki on hyvin yksinkertaista:

# LUO KÄYTTÄJÄN käyttäjätunnus SALASANALLA "12345";

  • käyttäjätunnus- uuden käyttäjän kirjautuminen
  • ‘12345’ - Käyttäjän salasana. Lainausmerkeissä

3.2. Käyttäjän poistaminen

Täällä se on vielä yksinkertaisempaa:

# PUDOTA KÄYTTÄJÄN käyttäjätunnus;

  • käyttäjätunnus- poistettavan käyttäjän kirjautuminen.

4. Tietokannat

Kaikki tietokannan käsittelyt suoritetaan myös konsolissa psql.

4.1. Tietokannan luominen

Kaikki tässä on sama kuin käyttäjää luotaessa:

# CREATE DATABASE dbname;

4.2. Poista tietokanta

# DROP DATABASE dbname;
  • dbname- poistettavan tietokannan nimi

Huomaa, että tietokanta kieltäytyy poistamasta tietyissä tapauksissa:

  • Jos on käyttäjiä, joilla on oikeudet tähän tietokantaan. Ennen tietokannan poistamista heidän oikeutensa on peruutettava. Tästä lisää myöhemmin.
  • Jos tietokannan kanssa on vähintään yksi avoin yhteysistunto. Tässä tapauksessa istunnot on suljettava. IN viimeisenä keinona, voit yksinkertaisesti pysäyttää palvelimet vuorovaikutuksessa tämän tietokannan kanssa sen poistamisen yhteydessä (vaikka ei ole mitään järkeä käynnistää niitä tietokannan poistamisen jälkeen)

4.3. Oikeuksien jakaminen käyttäjille

Tietokannan ja käyttäjien saatavuus sisään PostgreSQL-järjestelmä ei sinänsä tuota tuloksia. varten oikea toiminta tietty käyttäjä tietyn tietokannan kanssa, hänelle on annettava oikeudet työskennellä sen kanssa. Voit tehdä tämän suorittamalla komennon:

# MYÖNTÄ KAIKKI TIETOKANNAN OIKEUDET dbname käyttäjätunnukselle;

  • dbname- sen tietokannan nimi, johon käyttöoikeudet on myönnettävä
  • käyttäjätunnus- sen käyttäjän nimi, jolle oikeudet myönnetään määritelty pohja tiedot

4.4 Käyttäjäoikeuksien poistaminen

Joskus on tarpeen vaihtaa tietokantaa hallinnoivaa käyttäjää tai yksinkertaisesti peruuttaa oikeudet sen myöhempää poistamista varten. Suosittelen, että et laiminlyö tätä komentoa ja toimi periaatteen "Yksi käyttäjä hallitsee yhtä tietokantaa" mukaisesti.

Järjestelmänhallinta

Tämä postaus on lyhyet ohjeet aloittelijoille, niille, jotka asensivat PostgreSQL:n ensimmäistä kertaa. Kaikki on täällä tarvittavat tiedot aloittaaksesi PostgreSQL:n käytön.

Yhdistetään DBMS:ään

Ensimmäinen asia on päästä PostgreSQL:ään, pääsy pääkäyttäjänä.
Todennusasetukset ovat pg_hba.conf-tiedostossa.
  1. paikalliset kaikki postgres-verkot
Tämä rivi sanoo, että postgres-käyttäjä voi muodostaa yhteyden mihin tahansa paikalliseen tietokantaan PostgreSQL DBMS pistorasian kautta. Salasanaa ei tarvitse syöttää, käyttöjärjestelmä lähettää käyttäjätunnuksen, ja sitä käytetään todentamiseen.
Yhdistetään:
  1. $ sudo -u postgres psql postgres postgres
Jotta voit muodostaa yhteyden verkon kautta, sinun on lisättävä rivi tiedostoon pg_hdba.conf:
  1. # TYYPPI TIETOKANTA KÄYTTÄJÄOSOITE MENETELMÄ
  2. hostssl kaikki kaikki 0.0.0.0/0 md5
Todennusmenetelmä md5 tarkoittaa, että sinun on syötettävä salasana muodostaaksesi yhteyden. Tämä ei ole kovin kätevää, jos käytät usein psql-konsolia. Jos haluat automatisoida joitain toimintoja, huono uutinen on, että psql ei hyväksy salasanaa argumenttina. On kaksi tapaa ratkaista nämä ongelmat: aseta sopiva ympäristömuuttuja ja tallenna salasana erityiseen .pgpass-tiedostoon.

PGPASSWORD-ympäristömuuttujan asettaminen

Sanon heti, että on parempi olla käyttämättä tätä menetelmää, koska jotkut käyttöjärjestelmät antavat sinun katsella tavallisia käyttäjiä ympäristömuuttujat ps:n avulla. Mutta jos haluat, sinun on kirjoitettava terminaaliin:
  1. vie PGPASSWORD=mypasswd
Muuttuja on käytettävissä nykyisessä istunnossa. Jos sinun on asetettava muuttuja kaikille istunnoille, sinun on lisättävä esimerkin rivi .bashrc- tai .bash_profile-tiedostoon

Salasanan tallentaminen .pgpass-tiedostoon

Jos puhumme Linuxista, tiedoston tulisi sijaita $HOMEssa (/home/username). Vain omistajalla (0600) on oltava kirjoitus- ja lukuoikeudet. Sinun on kirjoitettava tiedostoon seuraavat rivit:
  1. isäntänimi:portti:tietokanta:käyttäjänimi:salasana
Voit kirjoittaa "*" neljään ensimmäiseen kenttään, mikä tarkoittaa, ettei suodatusta (koko valinta).

Aputietojen saaminen

\? - antaa kaiken pois käytettävissä olevia komentoja sekä heidän lyhyen kuvauksensa,
\h - näyttää luettelon kaikista käytettävissä olevista kyselyistä,
\h CREATE - tarjoaa apua tiettyyn pyyntöön.

DBMS-käyttäjien hallinta

Kuinka saada luettelo PostgreSQL-käyttäjistä?
  1. Tai voit tehdä kyselyn pg_user-taulukosta.

SELECT * FROM pg_user ;

Uuden PostgreSQL-käyttäjän luominen From kuori
  1. psql tämä voidaan tehdä CREATE-komennolla.
LUO KÄYTTÄJÄN käyttäjätunnus salasanalla "salasana" ;
  1. Tai voit käyttää terminaalia.
Createuser -S -D -R -P käyttäjätunnus

Sinua pyydetään antamaan salasana.

  1. Käyttäjän salasanan vaihtaminen

MUUTA KÄYTTÄJÄN käyttäjätunnus SALASANALLA "salasana" ;

Käyttäjäroolien vaihtaminen
  1. Jos haluat antaa käyttäjälle luvan luoda tietokantoja, suorita seuraava kysely:

ALTER ROLE käyttäjätunnus LUOTUB:N KANSSA ;

Tietokannan hallinta
  1. Tietokantaluettelon näyttäminen psql-päätteessä: Sama Linux-päätteestä:
psql -l
  1. Tietokannan luominen psql:stä (PostgreSQL-pääte)
LUO TIETOKANTA tietokantanimi OMISTAJA dbadmin ;
  1. Uuden tietokannan luominen terminaalilla:

Createdb -O käyttäjätunnus dbname;

Tietokannan käyttöoikeuksien määrittäminen Jos käyttäjä on tietokannan omistaja, hänellä on kaikki oikeudet. Mutta jos haluat antaa käyttöoikeuden toiselle käyttäjälle, voit tehdä tämän käyttämällä GRANT-komentoa. Alla olevan kyselyn avulla käyttäjä voi muodostaa yhteyden tietokantaan. Mutta älä unohda asetustiedosto
  1. pg_hba.conf, sillä on myös oltava asianmukaiset yhteysoikeudet.

MYÖNTÄ YHTEYTTÄ TIETOKANTAAN dbname DBadminille;

Ensimmäinen tapa tarkistaa, onko sinulla pääsy tietokantapalvelimeen, on yrittää luoda tietokanta. Käynnissä oleva PostgreSQL-palvelin voi hallita useita tietokantoja, jolloin voit luoda erillisiä tietokantoja eri projekteille ja käyttäjille.

Järjestelmänvalvojasi on ehkä jo luonut sinulle tietokannan ja antanut sinulle sen nimen. Tässä tapauksessa voit ohittaa tämän vaiheen ja siirtyä seuraavaan osaan.

Luodaksesi tietokannan, jonka nimi on tässä esimerkissä mydb, suorita seuraava komento:

Jos et näe viestejä, toiminto onnistui ja voit ohittaa tämän osan jatkamisen.

Jos näet seuraavanlaisen viestin:

Createdb: komentoa ei löydy

Tämä tarkoittaa, että PostgreSQL:ää ei ole asennettu oikein. Joko sitä ei ole asennettu ollenkaan tai sen hakemistoa ei sisälly shell-komennon hakupolkuun. Kokeile kutsua samaa komentoa määrittämällä absoluuttinen polku:

Jos saat jotain samanlaista kuin: Createdb: komento

Tämä polku voi olla sinulle erilainen. Ota yhteyttä järjestelmänvalvojaan tai tarkista, että asennusohjeita noudatettiin tilanteen korjaamiseksi.

Toinen mahdollinen vastaus:

Createdb: Yhteyden muodostaminen postgres-tietokantaan epäonnistui: Yhteyden muodostaminen palvelimeen epäonnistui: Ei tällaista tiedostoa tai hakemistoa Onko se todella käynnissä paikallisesti ja hyväksyy yhteydet verkkotunnuksen "/tmp/.s.PGSQL.5432" kautta?

Tämä tarkoittaa, että palvelin ei toimi tai luotub ei voi muodostaa yhteyttä siihen. Tarkista tässä tapauksessa asennusohjeet tai ota yhteyttä järjestelmänvalvojaan.

Saatat myös saada seuraavan viestin:

Createdb: Yhteyden muodostaminen postgres-tietokantaan epäonnistui: TÄRKEÄÄ: roolia "joe" ei ole olemassa

jossa käyttäjänimesi näkyy. Tämä osoittaa, että järjestelmänvalvoja ei ole luonut sinulle PostgreSQL-tiliä. (PostgreSQL-tilit eroavat käyttöjärjestelmän käyttäjätilistä.) Jos olet itse järjestelmänvalvoja, lue luvusta 20 ohjeet tilien luomiseen. Uuden käyttäjän luomiseksi sinun on tultava käyttöjärjestelmän käyttäjäksi, johon PostgreSQL asennettiin (yleensä postgres). On myös mahdollista, että sinulle on annettu nimi PostgreSQL-käyttäjä, joka ei vastaa nimeäsi käyttöjärjestelmässä; tässä tapauksessa sinun on määritettävä erikseen PostgreSQL-käyttäjänimesi käyttämällä -U-kytkintä tai -asetusta ympäristömuuttuja PGUSER.

Jos sinulla on tili käyttäjällä, mutta hänellä ei ole oikeutta luoda tietokantaa, näet viestin:

Createdb: Tietokannan luominen epäonnistui: VIRHE: Ei oikeuksia tietokannan luomiseen

Kaikki käyttäjät eivät saa luoda tietokantoja. Jos PostgreSQL kieltäytyy luomasta tietokantoja puolestasi, tarvitset siihen luvan. Ota tässä tapauksessa yhteyttä järjestelmänvalvojaan. Jos asensit PostgreSQL:n itse, sinun tulee olla kirjautuneena sisään tietokantapalvelinta käyttävänä käyttäjänä tätä johdatusta varten.

Voit myös luoda tietokantoja muilla nimillä. PostgreSQL antaa sinun luoda niin monta tietokantaa kuin haluat. Tietokannan nimien tulee alkaa kirjaimella, ja niiden pituus saa olla enintään 63 merkkiä. On kätevää käyttää nykyistä käyttäjätunnustasi tietokannan nimenä. Monet apuohjelmat ottavat oletuksena tämän nimen, joten voit helpottaa komentojen kirjoittamista. Voit luoda tietokannan tällä nimellä kirjoittamalla:

$luotub

Jos et enää halua käyttää tietokantaasi, voit poistaa sen. Jos olet esimerkiksi mydb-tietokannan omistaja (luoja), voit tuhota sen suorittamalla seuraavan komennon:

$dropdb mydb

(Tämä komento ei ole oletusarvoisesti nykyisen käyttäjän tietokannan nimi, sinun on määritettävä se nimenomaisesti.) Tämä poistaa fyysisesti kaikki tietokantaan liittyvät tiedostot, ja koska tätä toimintoa ei voi kumota, älä suorita sitä ajattelematta seurauksia.

PostgreSQL on monialustainen objektirelaatiotietokantajärjestelmä, jossa on avoin lähdekoodi. Tämä artikkeli näyttää, kuinka PostgreSQL asennetaan Ubuntu Linux, muodosta yhteys siihen ja muodosta pari yksinkertaiset SQL-kyselyt, sekä varmuuskopioiden määrittämisestä.

Asenna PostgreSQL 9.2 Ubuntu 12.10:een suorittamalla seuraavat komennot:

sudo apt-add-arkisto ppa:pitti/postgresql
sudo apt-get päivitys
sudo apt-get install postgresql-9.2

Yritetään työskennellä DBMS:n kanssa kuoren kautta:

sudo -u postgres psql

Luodaan testitietokanta ja testikäyttäjä:

CREATE DATABASE test_tietokanta;
LUO KÄYTTÄJÄ test_user salasanalla "qwerty" ;
MYÖNTÄ KAIKKI TIETOKANNASSA test_tietokanta testauskäyttäjälle;

Poistu komentotulkista kirjoittamalla komento \q .

Yritetään nyt työskennellä luodun tietokannan kanssa test_userin puolesta:

psql -h localhost testi_tietokanta testi_user

Luodaan uusi taulukko:

CREATE SEQUENCE user_ids;
LUO TABLE käyttäjät (
id INTEGER PRIMARY KEY DEFAULT NEXTVAL ("user_ids") ,
kirjaudu sisään CHAR(64) ,
salasana CHAR(64));

Huomaa, että toisin kuin joissakin muissa tietokantajärjestelmissä, PostgreSQL:ssä ei ole sarakkeita, joissa on auto_increment-ominaisuus. Sen sijaan Postgres käyttää sekvenssejä. Päällä tällä hetkellä Riittää kun tietää, että nextval-funktiolla saamme ainutlaatuisia numeroita tietylle sarjalle:

SELECT NEXTVAL ("käyttäjätunnukset" ) ;

Asettamalla käyttäjätaulukon id-kentän oletusarvoksi NEXTVAL("käyttäjätunnukset"), olemme saavuttaneet saman vaikutuksen kuin auto_increment antaa. Kun lisäämme uusia tietueita taulukkoon, meidän ei tarvitse määrittää tunnusta, koska yksilöllinen tunnus luodaan automaattisesti. Useat taulukot voivat käyttää samaa järjestystä. Näin voimme taata, että joidenkin kenttien arvot näissä taulukoissa eivät mene päällekkäin. Tässä mielessä sekvenssit ovat joustavampia kuin auto_increment.

Täsmälleen sama taulukko voidaan luoda yhdellä komennolla:

LUO TABLE käyttäjät2 (
id SERIAL PRIMARY KEY ,
kirjaudu sisään CHAR(64) ,
salasana CHAR(64));

Tässä tapauksessa id-kentän järjestys luodaan automaattisesti.

Nyt käyttämällä \d-komentoa näet luettelon kaikista käytettävissä olevista taulukoista, ja käyttämällä \d users näet kuvauksen käyttäjätaulukosta. Jos et saa etsimääsi tietoa, kokeile \d+ \d:n sijaan. Voit saada luettelon tietokannoista komennolla \l ja vaihtaa tiettyyn tietokantaan komennolla \c dbname. Näytä komentoapu sanomalla \?

. On tärkeää huomata, että PostgreSQL:ssä oletusarvoisesti taulukoiden ja sarakkeiden nimet välitetään pienet kirjaimet

. Jos et halua tällaista toimintaa, voit käyttää lainausmerkkejä:

CREATE TABLE "otherTable" ("someValue" VARCHAR (64 ) ) ;

Toinen PostgreSQL:n ominaisuus, joka voi aiheuttaa vaikeuksia aloitettaessa työskennellä tämän DBMS:n kanssa, ovat niin sanotut "skeemat". Kaava on jotain taulukoiden nimiavaruuden kaltaista, kuten tietokannan sisällä olevien taulukoiden hakemisto.

Kaavan luominen:

LUO SCHEMA-varaukset;

Vaihda malliin:

SET hakupolku varauksiin;

Voit tarkastella olemassa olevien mallien luetteloa komennolla \dn. Oletusskeema on julkinen. Periaatteessa voit käyttää PostgreSQL:ää menestyksekkäästi tietämättä skeemojen olemassaolosta. Mutta kun työskentelet vanhan koodin kanssa ja joissakin reunatapauksissa, skeemojen tunteminen voi olla erittäin hyödyllistä.

Muuten PostgreSQL:n kanssa työskentely ei eroa paljon minkään muun relaatiotietokantajärjestelmän kanssa työskentelystä:
INSERT INTO käyttäjiin (kirjautumistunnus, salasana)
ARVOT ("afiskon" , "123456" );

SELECT * FROM käyttäjiltä;

Jos yrität nyt muodostaa yhteyden Postgresiin toiselta koneelta, epäonnistut:

psql -h 192.168.0.1 testitietokanta testikäyttäjä Psql: ei saatu yhteyttä palvelimeen:
Yhteys evätty
Onko palvelin käynnissä isännässä "192.168.0.1" ja hyväksyykö se

TCP/IP-yhteydet portissa 5432?

Korjaa tämä lisäämällä rivi:

listen_addresses = "paikallinen isäntä,192.168.0.1"