You are on page 1of 25

IDZ DO

PRZYKADOWY ROZDZIA
SPIS TRECI

KATALOG KSIEK
KATALOG ONLINE
ZAMW DRUKOWANY KATALOG

TWJ KOSZYK
DODAJ DO KOSZYKA

CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK

CZYTELNIA
FRAGMENTY KSIEK ONLINE

PostgreSQL 7.2.

wiczenia praktyczne
Autor: Marcin Szeliga
ISBN: 83-7197-866-9
Format: B5, stron: 150

Jeli kiedykolwiek chciae uruchomi baz danych PostreSQL, a nie wiedziae jak lub
jeli chciae stworzy baz za pomoc tego narzdzia, a cigle wydaje ci si, e
technologia ta przypomina czarn skrzynk powiniene przeczyta t ksik.
Autor, Marcin Szeliga wieloletni praktyk, twrca i administrator baz danych,
certyfikowany inynier Microsoft podj si zadania trudnego. Postanowi w sposb
przystpny opisa instalacj oraz projektowanie bazy postgresowej. Wielka pasja, jak
dla niego s jzyk SQL oraz bazy danych i umiejtno przekazywania informacji, nawet
najbardziej zawiych w prosty sposb, zaowocoway doskonaym podrcznikiem dla
pocztkujcych. Wykorzystaj szans i naucz si:
instalacji systemu PostgreSQL w rodowiskach Linux i Windows;
niezbdnych czynnoci skadajcych si na codzienn prac administratora baz
danych;
teorii relacyjnych baz danych. Zdobyte umiejtnoci zostan wykorzystane przy
tworzeniu przykadowej bazy danych;
strukturalnego jzyka zapyta jzyka zarzdzania wszystkimi relacyjnymi
bazami danych;
tworzenia zaawansowanych instrukcji jzyka SQL;
metod zdalnego dostpu do bazy danych poprzez dobrze znane aplikacje
dziaajce w rodowisku Windows takie jak Microsoft Access czy Microsoft
Excel;
zarzdzania PostgreSQL-em z poziomu systemu Windows.

"
"
"
"
"
"
"

Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl

Wstp ......................................................................................................................................................5
Czym jest PostgreSQL? ................................................................................................5
Krtka historia PostgreSQL ..................................................................................................... 6
Licencje Open Source .............................................................................................................. 7

Organizacja ksiki .......................................................................................................7


Konwencje i oznaczenia................................................................................................8

Rozdzia 1. Instalacja i konfiguracja ..............................................................................................................9


Instalacja PostgreSQL-a w Windows............................................................................9
Instalacja PostgreSQL-a z pakietw binarnych systemu Linux..................................19
Instalacja PostgreSQL z kodu rdowego .................................................................21
Konfiguracja SZBD PostgreSQL w rodowisku UNIX .............................................23

Rozdzia 2. Administracja SZBD PostgreSQL............................................................................................. 29


Konfiguracja rodowiska SZBD PostgreSQL.............................................................29
Zarzdzanie bazami danych ........................................................................................34
Program psql ...............................................................................................................44

Rozdzia 3. Projektowanie baz danych.........................................................................................................51


Diagramy zwizkw E/R ............................................................................................51
Grupowanie danych w tabelach ............................................................................................. 56

Tworzenie tabel ...........................................................................................................57


Warunki integralnoci ............................................................................................................ 60

Indeksy ........................................................................................................................65

Rozdzia 4. Modyfikowanie danych...............................................................................................................69


Jzyk definiowania danych .........................................................................................69
Zmiana definicji tabel ............................................................................................................ 71

Jzyk modyfikowania danych .....................................................................................77


Dodawanie danych ................................................................................................................. 77
Modyfikowanie danych.......................................................................................................... 82

PostgreSQL 7.2. wiczenia praktyczne


Pobieranie danych .................................................................................................................. 85
Wybieranie danych z wielu tabel ........................................................................................... 93
Grupowanie danych ............................................................................................................... 96

Przetwarzanie transakcyjne .......................................................................................100

Rozdzia 5. Zapytania zoone.........................................................................................................................103


Podzapytania .............................................................................................................106

Rozdzia 6. Udostpnianie danych...............................................................................................................115


ODBC........................................................................................................................115
Microsoft Access.......................................................................................................116
Microsoft Excel .........................................................................................................123

Rozdzia 7. Moliwoci systemu PostgreSQL ..........................................................................................127


Po co tworzy wasne procedury skadowane, funkcje i wyzwalacze? ....................133

Rozdzia 8. Zarzdzanie PostgreSQL-em z poziomu systemu Windows.........................................139

Podczas uruchamiania SZBD PostgreSQL odczytuje zawarto plikw konfiguracyjnych


znajdujcych si w katalogu /usr/local/pgsql/data/postgresql.conf oraz pg_hba.conf. Najprostsz i najbardziej uniwersaln metod konfiguracji rodowiska systemu Postgres jest
edycja tych plikw.
Niektre opcje mog zosta ustawione poprzez poczenie si z dziaajc baz danych i wykonanie
instrukcji SQL 
.

Umoliwienie dostpu klientom zdalnym do baz danych


wiczenie 2.1.

Domylnie PostgreSQL nie zezwoli uytkownikom na zdalny dostp do jakiejkolwiek


bazy danych. Aby nada im prawa do nawizania poczenia, naley zmieni plik konfiguracyjny pg_hba.conf. Plik ten znajduje si w katalogu /usr/local/pgsql/data i zawiera
wpisy dotyczce udzielenia lub odebrania praw dla zdalnych uytkownikw do poczenia
si z baz danych. Aby zezwoli na dostp do wszystkich baz danych wszystkim komputerom z sieci lokalnej bez koniecznoci podawania hasa:
1. Za pomoc dowolnego edytora tekstu otwrz plik pg_hba.conf.
Wiersze rozpoczynajce si od znaku  s komentarzami i nie wpywaj na konfiguracj SZBD
PostgreSQL.

30

PostgreSQL 7.2. wiczenia praktyczne


2. Dodaj dodatkowy wiersz na kocu pliku:
 
   

3. Zapisz plik.
4. Zatrzymaj i ponownie uruchom proces .
5. Od tej chwili, wszystkie komputery o adresach IP rozpoczynajcych si od 192.168.

bd mogy uzyska dostp, bez podawania hasa uytkownika, do wszystkich baz


danych.

Uwierzytelnianie klientw za pomoc hasa


wiczenie 2.2.

O ile poczenia klientw sieci lokalnej mog by akceptowane bez koniecznoci uwierzytelniania uytkownika, o tyle klienci sieci zewntrznej powinni przy prbie poczenia si
z baz danych poda prawidow nazw uytkownika i haso. W tym celu:
1. Za pomoc dowolnego edytora tekstu otwrz plik pg_hba.conf.
Programy systemu UNIX takie jak Postgres niepoprawnie interpretuj znak koca wiersza plikw
tekstowych utworzonych lub edytowanych za pomoc programw systemu Windows, takich jak
np. Notatnik.
2. Dodaj dodatkowy wiersz na kocu pliku:
 


3. Zapisz plik.
4. Zatrzymaj i ponownie uruchom proces .
5. Od tej chwili, wszystkie komputery bd mogy uzyska dostp do wszystkich

baz danych, o ile zostanie podane prawidowa nazwa uytkownika i haso. Hasa
uytkownikw s przechowywane w pliku pg_pwd znajdujcym si w katalogu
/pgsql/data/global w postaci zaszyfrowanej algorytmem MD5.

Odrzucanie pocze okrelonych klientw


wiczenie 2.3.

Jeeli chcemy uniemoliwi dostp do wybranej bazy danych klientom o okrelonych adresach IP:
1. Za pomoc dowolnego edytora tekstu otwrz plik pg_hba.conf.
2. Dodaj dodatkowy wiersz przed wierszem zezwalajcym na poczenie kademu

komputerowi:
      

3. Zapisz plik.

Rozdzia 2. v Administracja SZBD PostgreSQL

31

4. Zatrzymaj i ponownie uruchom proces .


5. Od tej chwili prby nawizania poczenia z systemow baz danych przez komputery

o adresach IP 217.96.x.x bd automatycznie odrzucane.


Listing 2.1. Przykadowy plik pg_hba.conf
 
 
 !

""""""""""""""""""""""""""""""""""

#$%%&%'(%$$)*%+%,-(#%,-(%).,*/




 
   
 
  

  0
   

 
 


Optymalizacja pracy SZBD PostgreSQL


wiczenie 2.4.

Dane przechowywane w kadej bazie danych nie s niezmienne codziennie dodawane


s nowe rekordy, niektre rekordy s zmieniane, a niektre informacje usuwane.
W rezultacie, aby zapewni wysok wydajno SZBD naley okresowo oczyci baz
danych, aby odzyska wolne miejsca w bazie danych pozostae po usunitych rekordach
i aby zaktualizowa statystyki optymalizatora polece SQL1. W tym celu:
1. Zaloguj si na konto uytkownika .
2. Wydaj polecenie:
//  / /1 23
14     44

54431

3. Jeeli zostan wywietlone informacje podobne do pokazanych na rysunku 2.1,


a wykonanie polecenia zostao potwierdzone poprzez wywietlenie tekstu

statystyki wybranej bazy danych zostay odwieone.


4. Wywietlenie komunikatu vacuumdb: vacuum failed oznacza bd, prawdopodobnie

spowodowany niemoliwoci poczenia z wybran baz danych. Sprawd, czy


procesjest uruchomiony, czy w katalogu baz danych znajduje si baza
o podanej nazwie i czy uytkownik  jest administratorem tej bazy. Za pomoc
dodatkowych opcji polecenia  moesz okreli:
v nazw lub adres IP serwera: ,
v port, na ktrym SZBD nasuchuje pocze klienckich:  .

Optymalizator, na podstawie zgromadzonych statystyk bazy danych, decyduje o sposobie wykonania


instrukcji SQL.

32

PostgreSQL 7.2. wiczenia praktyczne

Rysunek 2.1.
Fragment
informacji
wywietlanych
podczas
aktualizacji
statystyk

Monitorowanie pracy serwera


wiczenie 2.5.

Z reguy warto zapisywa informacje o operacjach przeprowadzanych przez poszczeglnych uytkownikw oraz informacje diagnostyczne opisujce prac SZBD PostgreSQL.
Tak jak wiele innych opcji, t rwnie moemy ustawi modyfikujc zawarto pliku
postgresql.conf.
1. Za pomoc dowolnego edytora tekstu otwrz plik postgresql.conf.
2. Znajd parametr (domyln wartoci jest  w dzienniku zapisywane

s tylko podstawowe dane opisujce prac serwera).


3. Maksymalny poziom szczegowoci zapisywanych danych osigniemy zmieniajc
warto parametru  na :
1!( 3 "6

4. Ustawiajc warto parametru  na  dodamy do dziennika

informacje o kadej udanej prbie zalogowania klienta do serwera:


 !( "

5. Zmieniajc warto parametru  na  spowodujemy, e kada

informacja zapisana w dzienniku zdarze bdzie uzupeniona o znacznik czasu


informujcy o dokadnym czasie wystpienia zdarzenia:
!( 
0"

6. Zapisz plik.
7. Zatrzymaj i ponownie uruchom proces .
Listing 2.2. Fragment pliku postgresql.conf


7 

 

0 0(8 "

 "


9( " 

Rozdzia 2. v Administracja SZBD PostgreSQL

33

0 "6:
 
( 80"

;((0 "

 9(8 (  "<<
 9(8 (!0"<<
 9(8 (0  "
3  
( "<<
81(3(8 "<<



* 5


(1"6=
9( >  

9((
"   > 0

0

9((0
!"   > 0

0

9( 8(0( 

 "6  
;
(1" 6


/4
* 5

 ("  :
3
("   6

Przydzielanie zasobw systemowych


wiczenie 2.6.

W przypadku serwera, ktry bdzie obsugiwa wiele jednoczesnych pocze lub ktry
bdzie nasuchiwa na nietypowym porcie, naley zmieni domylne ustawienia SZBD
PostgreSQL. W tym celu:
1. Za pomoc dowolnego edytora tekstu otwrz plik postgresql.conf.
2. Znajd parametr  i zmie domyln warto na numer portu, ktry bdzie

wykorzystywany do nawizywania poczenia klientw z serwerem:


0 "

3. Ustaw warto parametru  serwer bdzie zezwala na nawizanie

maksymalnie 50 jednoczesnych pocze:



9( "

4. Ustawiajc warto parametru  okrelamy, ile buforw pamici

operacyjnej bdzie zarezerwowane dla SZBD Postgres (domylna wielko bufora


to 8 192 bajty):

(1" 

5. Przydziel ilo pamici operacyjnej (w kilobajtach) wykorzystywanej m.in. przy

sortowaniu danych przez system Postgres:


 ("6

34

PostgreSQL 7.2. wiczenia praktyczne


Niektre skomplikowane zapytania lub operacje sortowania mog by wykonywane rwnolegle.
W takim przypadku kademu procesowi zostanie przydzielona podana ilo pamici operacyjnej.
W praktyce cakowita liczba przydzielonej pamici jest wielokrotnoci wartoci parametru
 (.
6. Zapisz plik.
7. Zatrzymaj i ponownie uruchom proces postmaster.

Po uruchomieniu i skonfigurowaniu rodowiska Systemu zarzdzania bazami danych


moemy utworzy testow baz danych. Chocia wiczenia znajdujce si w kolejnym
rozdziale przedstawiaj proces samodzielnego zaprojektowania bazy danych katalog, to
ju teraz moemy utworzy swoj pierwsz baz danych. Wykonujc kolejne wiczenia
Czytelnik pozna nie tylko metody tworzenia i usuwania poszczeglnych baz danych, ale
rwnie ograniczania dostpu do obiektw baz danych poszczeglnym uytkownikom.

Tworzenie bazy danych


wiczenie 2.7.

Jednym z etapw instalacji i konfiguracji SZBD PostgreSQL byo utworzenie systemowej


bazy danych template1. W tej bazie przechowywane s informacje niezbdne do zarzdzania bazami danych uytkownika. SZBD PostgreSQL, tak jak zdecydowana wikszo
innych systemw zarzdzania bazami danych, umoliwia uruchomienie na pojedynczym
serwerze dowolnej liczby baz danych.
Ksika opisuje wycznie logiczn struktur baz danych SZBD PostgreSQL. Sposb, w jaki
poszczeglne obiekty i dane przechowywane s na dysku twardym zosta opisany w ksice
Bazy danych i PostgreSQL. Od podstaw.

Aby utworzy now baz danych z poziomu systemu operacyjnego:


1. Upewnij si, e SZBD PostgreSQL zosta pomylnie uruchomiony.
2. Zaloguj si na konto uytkownika (W przypadku zainstalowania programu
w rodowisku MicrosoftWindowsnaley zalogowa si do systemu jako uytkownik
 lub zmodyfikowa opcj  w pliku uruchamiajcym powok Cygwin

Bash c:\cygwin\cygwin.bat).
? 

3. Utwrz baz danych  (rysunek 2.2):


22  2 21 2
1 

4. Po chwili zostanie wywietlony komunikat informujcy o pomylnym utworzeniu

bazy danych (rysunek 2.4):


7)%$%%&%

Rozdzia 2. v Administracja SZBD PostgreSQL

35

5. Sprawd, czy moesz podczy si do nowo utworzonej bazy za pomoc narzdzia


  (rysunek 2.2):
22  2 21 20@  

Rysunek 2.2.
Utworzona baza
danych nie zawiera
adnych obiektw

Alternatywn metod utworzenia bazy danych jest:


1. Zalogowanie do systemowej bazy danych template1:
0@  0


2. Wykonanie instrukcji SQL !"


#" $
#
%
&" 
3. Po chwili zostanie wywietlony komunikat informujcy o pomylnym utworzeniu

bazy danych (rysunek 2.3):


7)%$%%&%

4. Sprawd, czy moesz podczy si do nowo utworzonej bazy:


A 

Rysunek 2.3.
Do przeczania
si pomidzy
bazami danych
suy polecenie
\c nazwa bazy danych

Tworzenie kopii zapasowej


wiczenie 2.8.

Tworzenie kopii zapasowych jest jednym z podstawowych obowizkw administratora


bazy danych. Niezalenie od tego, ile wydano pienidzy na niezawodny sprzt, zawsze
istnieje moliwo jego awarii i utraty danych. Ponadto, niedowiadczony uytkownik moe
usun lub zmodyfikowa wszystkie dane przechowywane w pewnej tabeli niezgodnie ze

36

PostgreSQL 7.2. wiczenia praktyczne


swoimi zamierzeniami. Wreszcie, kady nawet najlepiej zabezpieczony system po podczaniu do internetu moe sta si przedmiotem udanego ataku pirata komputerowego.
W kadej z tych sytuacji najszybsz (a czasami jedyn) metod ponownego uruchomienia
bazy danych jest jej odtworzenie z aktualnej kopii zapasowej.
SZBD PostreSQL umoliwia tworzenie logicznych kopii zapasowych baz danych bez
koniecznoci wyczania systemu. Su do tego polecenia  oraz .
Najprostszym sposobem wykonania kopii zapasowej bazy danych jest wydanie polecenia
:
1. Upewnij si, e SZBD PostgreSQL zosta pomylnie uruchomiony.
2. Zaloguj si na konto uytkownika :
? 

3. Utwrz kopi zapasow wybranej bazy danych:


0!(0 B 

4. W katalogu domowym uytkownika, ktry wykona kopi bazy danych utworzony


zosta plik .
.
Dziaanie narzdzia 0!(0 polega na utworzeniu skryptu zoonego z polece SQL oraz wewntrznych polece programu 0@ , ktre po wykonaniu odtworz cao bazy danych. Skrypt
wynikowy jest zapisany w postaci tekstowej.

Oprcz wykonywania kopii bezpieczestwa baz danych uytkownika naley zabezpieczy


si na wypadek uszkodzenia systemowej bazy danych template1. Za pomoc polecenia
 mona wykona kopi zapasow wszystkich baz danych w caej instalacji
(wcznie z baz systemow i tabelami systemowymi). Operacj t moe przeprowadzi
jedynie administrator SZBD PostgreSQL (a nie administrator poszczeglnych baz danych):
1. Upewnij si, e SZBD PostgreSQL zosta pomylnie uruchomiony.
2. Zaloguj si na konto uytkownika :
? 

3. Utwrz kopi wszystkich baz danych utworzonych na serwerze:


0!(0
B  

4. Zostan wywietlone informacje potwierdzajce wykonanie kopii wszystkich baz

danych, wcznie z baz systemow:


   0
 
0 !

1
C 0
 D
0 !

1
C D
0 !

1
CD

5. W katalogu domowym uytkownika, ktry wykona kopi bazy danych utworzony


zosta plik .
.
Tylko za pomoc narzdzia 0!(0
wykonywana jest kopia metadanych SZBD, takich jak
np. dane o uytkownikach.

Rozdzia 2. v Administracja SZBD PostgreSQL

37

Listing 2.3. Skrypt kopii zapasowej serwera zawiera definicje uytkownikw i tabel systemowych
44
440!(0
EF
44
A  0

$GH)I*0!(
;J-) KBEG7
1
H)I*0!(

1
J-)


"< 0
<FL
7)%,)M5 MJ'-#'$  L
7)%,)M0 !MJ'-#'$ %JI)$<0 !<L



44I7 '$:EI'$ F
44
44/
N0!
(@ 0N%&GI;N%   

44
7)%%&GM0!
(@ ME
M@
M

 3
 !E6F>
M@ 0M

 E F>
M@
M 9 >
M@
1 M 9 >
M@ 8M 9 >
M@ M 9 >
M@ M 9
FL




Odtwarzanie bazy danych z kopii zapasowej


wiczenie 2.9.

Skoro skrypt kopii zapasowej zawiera polecenia tworzenia obiektw baz danych i wypeniania ich danymi, odtwarzanie bazy sprowadza si do jego wykonania.
Domylnie, w skrypcie nie zostaje zapisana instrukcja tworzca baz danych. Dlatego przed
przywrceniem bazy danych na innym serwerze musimy rcznie utworzy pust baz danych.
Nazwa nowo utworzonej bazy danych nie musi odpowiada nazwie rdowej bazy danych.
1. Upewnij si, e SZBD PostgreSQL zosta pomylnie uruchomiony.
2. Zaloguj si na konto uytkownika :
? 

3. Utwrz baz danych, w ktrej zostan umieszczone dane z kopii zapasowej:



1 

4. Uruchom skrypt kopii zapasowej:


0@ ?2 2 2  

38

PostgreSQL 7.2. wiczenia praktyczne


Opcja ? powoduje, e program 0@ wykona instrukcje znajdujce si w pliku o podanej nazwie.

Odtwarzanie kopii zapasowej caego serwera wymaga poczenia z baz danych


template1. Poniewa pena kopia zapasowa zawiera instrukcje SQL tworzce
wszystkie bazy danych uytkownikw, w tym przypadku nie jest konieczne rczne
tworzenie pustych baz danych.
5. Upewnij si, e SZBD PostgreSQL zosta pomylnie uruchomiony.
6. Zaloguj si na konto uytkownika :
? 

7. Uruchom skrypt kopii zapasowej serwera:


0@ ?2 2 2   0


Usuwanie bazy danych


wiczenie 2.10.

Czasami administrator musi usun ca baz danych z serwera. Sytuacja taka moe mie
miejsce w przypadku odtwarzania bazy danych z kopii zapasowej lub usuwania poprzedniej
wersji modyfikowanej bazy danych. Aby usun wybrana baz danych:
Usunicie bazy danych powoduje nieodwracalne utracenie wszystkich przechowywanych w niej
danych.
1. Upewnij si, e SZBD PostgreSQL zosta pomylnie uruchomiony.
2. Zaloguj si na konto uytkownika :
? 

3. Usu baz danych  :


22  2 21 201 

4. Na ekranie pojawi si komunikat informujcy o pomylnym usuniciu bazy danych:


$)I$%%&%

Tak jak w przypadku tworzenia bazy danych, moliwe jest jej usunicie z poziomu jzyka SQL:
1. Zaloguj si do systemowej bazy danych template1:
0@  0


2. Wykonaj instrukcj SQL $!'( $


#
%
&"  ).
3. Na ekranie pojawi si komunikat informujcy o pomylnym usuniciu bazy danych:
$)I$%%&%

Rozdzia 2. v Administracja SZBD PostgreSQL

39

Tworzenie uytkownikw
wiczenie 2.11.

Po utworzeniu wzorcowej bazy danych template1 jedynym uytkownikiem, ktry moe


nawiza poczenie z jakkolwiek baz jest uytkownik . Poniewa uytkownik
ten ma nieograniczone prawa modyfikowania zarwno danych, jak i obiektw baz danych,
uytkownicy nie powinni mie moliwo czenia si z serwerem za pomoc tego konta.
Dane o uytkownikach s zapisane w tabeli systemowej . Wybierajc wszystkie
wiersze z tabeli , moemy wywietli informacje o wszystkich uytkownikach:

  
 !""
###############$##########$#############$##########$##########$###########$##########$#######
%&'
("')'***
&+'))****


Nazwa uytkownika SZBD PostgreSQL nie musi odpowiada nazwie logowania danego
uytkownika do systemu operacyjnego. Jednak wikszo narzdzi (np. program  )
za domyln nazw uytkownika bazy danych przyjmuj nazw uytkownika, ktry
uruchamia program.
Aby utworzy nowego uytkownika:
1. Upewnij si, e SZBD PostgreSQL zosta pomylnie uruchomiony.
2. Zaloguj si na konto administratora SZBD :
? 

3. Dodaj nowego uytkownika:


22  2 21 2


4. Okrel, czy nowy uytkownik bdzie mia prawo tworzenia nowych baz danych

i nowych uytkownikw (rysunek 2.4).


Rysunek 2.4.
Wykonanie
instrukcji programu
psql \du wywietli
list wszystkich
uytkownikw

40

PostgreSQL 7.2. wiczenia praktyczne


5. Sprawd, czy moesz zalogowa si do jakiejkolwiek bazy danych na nowo utworzone

konto uytkownika:
0@ ?,  

Moemy rwnie tworzy nowych uytkownikw z poziomu jzyka SQL. W tym celu:
1. Zaloguj si do systemowej bazy danych template1:
0@  0


2. Wykonaj instrukcj SQL:


7)% ,)  

3. Po chwili zostanie wywietlony komunikat informujcy o pomylnym utworzeniu

nowego konta uytkownika:


7)%,)

Modyfikowanie konta uytkownikw


wiczenie 2.12.

Konto kadego uytkownika powinno by chronione hasem. Administrator moe okreli


haso uytkownika podczas tworzenia jego konta, moe rwnie nada lub zmieni istniejce haso w dowolnym momencie po utworzeniu konta uytkownika.
Aby zmieni haso istniejcego uytkownika:
1. Zaloguj si do systemowej bazy danych template1:
0@  0


2. Wykonaj instrukcj SQL:


%G),)  
J'-%JI)$<8
(0O
<L

3. Po chwili zostanie wywietlony komunikat potwierdzajcy zmian hasa uytkownika:


%G),)

Instrukcja
*#"! &"! pozwala rwnie okreli, czy dany uytkownik bdzie mia
nadane prawo do tworzenia wasnych baz danych oraz do dodawania nowych
uytkownikw. Dodatkowo moemy okreli, po jakim czasie konto zostanie
automatycznie zablokowane. Pena skadnia instrukcji wyglda nastpujco:
%G),)
PJ'-%JI)$<<Q
P7)%$&R/I7)%$&QP7)%,)R/I7)%,)Q
PS%G'$,/'G Q

Na przykad, aby uniemoliwi uytkownikowi   czenie si z serwerem po pierwszym maja 2002 roku, naley wykona instrukcj:
%G),)  
S%G'$,/'G<44 <L

Rozdzia 2. v Administracja SZBD PostgreSQL

41

Usuwanie uytkownikw
wiczenie 2.13.

Konta uytkownikw, ktrym naley odebra prawo do czenia si z bazami serwera


Postgres powinny zosta usunite z systemu. Ta operacja rwnie moe zosta przeprowadzona zarwno z poziomu systemu operacyjnego jaki i jzyka SQL. Aby usun konto
uytkownika:
1. Upewnij si, e SZBD PostgreSQL zosta pomylnie uruchomiony.
2. Zaloguj si na konto administratora SZBD :
4 

3. Usu konto uytkownika:


22  2 21 20  

4. Po chwili zostanie wywietlony komunikat potwierdzajcy usunicie konta uytkownika:


$)I,)

Natomiast jeeli jestemy ju zalogowani do systemu Postgres i chcemy usun konto


uytkownika:
1. Wykonaj instrukcj:
$)I,)  L

2. Jeeli zosta wywietlony komunikat "!!'!+$!'( &"!+,

oznacza to, e uytkownik aktualnie podczony do bazy danych nie jest jej
administratorem i nie moe usuwa kont innych uytkownikw. Wyloguj si
z systemu Postgres i zaloguj na konto administratoraSZBDPostgreSQL.
3. Pomylne wykonanie instrukcji zostanie potwierdzone komunikatem:
$)I,)

Tworzenie grupy uytkownikw


wiczenie 2.14.

Grupy uytkownikw tworzone s po to, aby uatwi i uproci administrowanie kontami


wielu uytkownikw. Zamiast wielokrotnie nadawa te same uprawnienie do poszczeglnych
obiektw kademu z uytkownikw, administrator moe utworzy grup uytkownikw,
dopisa do listy jej czonkw wybrane konta i nada odpowiednie uprawnienie grupie.
Uprawnienia nadane grupie zostaj niejawnie nadane wszystkim jej czonkom. Jeeli uytkownik
jest czonkiem kilku grup, jego efektywne uprawnienia bd sum uprawnie nadanych kadej
grupie.

Aby utworzy grup  :


1. Zaloguj si do systemowej bazy danych template1:
0@  0


42

PostgreSQL 7.2. wiczenia praktyczne


2. Wykonaj instrukcj SQL:
7)%.)I, 
J'-,) L

3. Po chwili zostanie wywietlony komunikat potwierdzajcy utworzenie grupy

uytkownikw:
7)%.)I,

Do tworzenia grupy uytkownikw suy instrukcja SQL 7)% .)I,. Pena skadnia instrukcji
wyglda nastpujco:
7)%.)I,
PJ'P#'$ Q
P,)P>QQQ

Dodawanie i usuwanie kont uytkownikw z grupy


wiczenie 2.15.

Uwani Czytelnicy zauwayli ju, e instrukcje jzyka SQL dotyczce zarzdzania kontami
uytkownikw i grupami uytkownikw s bardzo podobne. Tak jak modyfikowalimy
waciwoci poszczeglnych kont za pomoc instrukcji
*#"! &"!, tak do modyfikowania waciwoci grup uytkownikw wykorzystamy instrukcje
*#"! ,!' (.
Aby doda do grupy   konto uytkownika   :
1. Zaloguj si do systemowej bazy danych template1:
0@  0


2. Wykonaj instrukcj SQL:


%G).)I, 
%$$,) L

3. Po chwili zostanie wywietlony komunikat potwierdzajcy zmodyfikowanie grupy

uytkownikw (rysunek 2.5):


%G).)I,

Rysunek 2.5.
Wykonujc polecenie
\h ALTER GROUP
programu psql
wywietli
kontekstowy
plik pomocy

Rozdzia 2. v Administracja SZBD PostgreSQL

43

Nadawanie uprawnie
wiczenie 2.16.

SZBD PostgreSQL steruje dostpem do obiektw baz danych poprzez wykorzystanie


systemu uprawnie, ktre mog by udzielane lub odbierane za pomoc polece SQL
,!
-# i !" '.". Administrator moe nada odpowiednie uprawnienia uytkownikowi (lub
grupie uytkownikw) do kadego z obiektw. Nadane uprawnienia okrelaj, jakie operacje (np. odczytu danych) bd mogy zosta przeprowadzone przez wybranego uytkownika.
Polecenie ,!
-# ma nastpujc skadni:
.)%/  P>QI/ P>Q
IT,&G'7R.)I,RU

Sowo kluczowe ,&G'7 jest skrtem oznaczajcym wszystkich uytkownikw.

Dozwolone uprawnienia to:


v &"*" # umoliwia odczytywanie wierszy.
v /-&"!# umoliwia tworzenie nowych wierszy.
v $"*"#" umoliwia usuwanie wierszy.
v ($
#" umoliwia aktualizacj istniejcych wierszy.
v ! *" umoliwia tworzenie regu dla tabeli lub perspektywy.
v
** nadaje wszystkie wyej wymienione uprawnienia.
Parametrem   
  moe by nazwa tabeli, perspektywy lub sekwencji.
Aby nada uprawnienie do wstawiania nowych rekordw do systemowej tabeli2 
uytkownikowi :
1. Zaloguj si do systemowej bazy danych template1:
0@  0


2. Wykonaj instrukcj SQL:


.)%/ 
I/0!(
I L

3. Po chwili zostanie wywietlony komunikat potwierdzajcy zmodyfikowanie uprawnie

uytkownika:
.)%/

W rzeczywistoci tabela 0!( jest tabel wirtualn widokiem utworzonym na podstawie danych
przechowywanych w innych tabelach. Wykonujc wiczenie 2.19 Czytelnik pozna definicj tego widoku.

44

PostgreSQL 7.2. wiczenia praktyczne

Odbieranie uprawnie
wiczenie 2.17.

Prawie na pewno cze informacji przechowywanych w bazie danych bdzie miaa charakter poufny. Dostp do tych informacji powinni mie jedynie wybrani uytkownicy.
Ponadto, niektre dane dostpne dla wszystkich uytkownikw nie powinny by przez nich
modyfikowane. Osign to moemy odbierajc uprawnienia do wykonania okrelonych
instrukcji pewnym uytkownikom lub ich grupom. Aby uniemoliwi modyfikowanie
i dodawanie rekordw tabeli  uytkownikom nalecym do grupy  :
1. Zaloguj si do systemowej bazy danych template1:
0@  0


2. Wykonaj instrukcj SQL:


)SI+  >0

I/0!(
H)I*.)I, L

3. Po chwili zostanie wywietlony komunikat potwierdzajcy zmodyfikowanie uprawnie

grupy uytkownikw:
)SI+

Podstawowym narzdziem sucym do administrowania SZBD PostgreSQL dla Linuksa


jest program  . Program ten jest czci systemu PostgreSQL i zostanie automatycznie
zainstalowany podczas jego instalacji. Program   by ju wykorzystywany w poprzednich wiczeniach teraz nadesza pora, eby powici mu nieco wicej uwagi.

Uruchamianie psql
wiczenie 2.18.

Pena skadnia polecenia   jest nastpujca:


0@ P QP PQQ

Niepodanie dowolnego argumentu spowoduje przyjcie jego wartoci domylnej. Domylna


baza danych znajduje si na komputerze lokalnym, za do uwierzytelniania zostanie uyta nazwa tego uytkownika, ktry uruchomi program.

Aby poczy si z baz znajdujc si na serwerze wywoamy   z nazw bazy danych:


0@ ? 

Domylne wartoci nazwy bazy danych, nazwy uytkownika, nazwy hosta serwera oraz portu
mona zastpi poprzez ustawienie zmiennych rodowiskowych: .$%%&%, .,), .-I
oraz .I).

Rozdzia 2. v Administracja SZBD PostgreSQL

45

Tabela 2.1 zawiera krtki opis najwaniejszych opcji wywoania programu  .


Tabela 2.1. Lista opcji dostpnych przy uruchamianiu programu psql
Opcja

Znaczenie

Wywietlanie wszystkich polece skryptu

4%

Wywietlanie tabel bez wyrwnywania (odpowiednik opcji?


"
!)

4< >

Wykonanie pojedynczego zapytania i wyjcie z programu

4<  > Okrelenie bazy danych, do ktrej ma nastpi podczenie (domylnie warto
zmiennej V.$%%&% lub bieca nazwa zalogowanego uytkownika)
4

Echo zapyta wysyanych do wewntrznego elementu przetwarzajcego

4

Wywietla zapytania generowane przez polecenia wewntrzne

4<  >

Wykonuje zapytania z pliku, po czym koczy dziaanie

4H<! ">

Ustawia separator pl (domylnie: |)


(odpowiednik opcji?  0"K W!5
8X;B)

4<>

Okrela hosta serwera bazy danych


(domylnie warto zmiennejV.-I lub komputer lokalny)

4-

Tabele wywietlane w formacie HTML (odpowiednik opcji?


"  ).

Wywietlenie listy dostpnych baz danych i zakoczenie dziaania.

4

Wyczenie mechanizmu readline (moliwoci wywoywania poprzednich polece)

4<  >

Wysanie wyniku zapytania do pliku

40<>

Okrelenie portu serwera bazy danych (domylnie warto zmiennejV.I)


lub warto podana podczas kompilacji domylnie 5432)

4   [=]

Ustawienie zmiennej drukowania    na warto 

4@

Uruchomienie w trybie @  bez wywietlania komunikatw. Wywietlane bd


tylko wynik zapyta

4)<! ">

Ustawienie separatora rekordw. Domylnie jest nim znak koca wiersza


(odpowiednik opcji?0"K!"B)

4

Tryb krok po kroku (potwierdzanie kadego zapytania)

4

Tryb pojedynczego wiersza (znakiem zakoczenia zapytania bdzie znak koca


wiersza, a nie rednik)

Drukowanie samych wierszy (odpowiednik opcji ? 0 ( )

4< >

Ustawienie znacznikw tabel HTML (szeroko, ramki)


(odpowiednik opcji?
11 
"K B)

4,< > Okrelenie uytkownika bazy danych (domylnie warto zmiennejV.,)

lub aktualne konto logowania)


43=

Ustawienie wartoci zmiennej 0@  na warto 

4S

Wywietla informacje o wersji i koczy dziaanie

4J

Wywietla pytanie o haso (wywoywane automatycznie, gdy haso jest wymagane)

49

Wczenie rozszerzonego wyjcia tabel

4Y

Pominicie odczytu pliku startowego (pliku Z20@ )

46

PostgreSQL 7.2. wiczenia praktyczne

Wywietlanie informacji o bazie danych


za pomoc wewntrznych polece programu psql
wiczenie 2.19.

Program   jest nie tylko terminalem, za pomoc ktrego moemy wykonywa instrukcje
strukturalnego jzyka zapyta. Posiada on rwnie kilkadziesit wasnych polece, za
pomoc ktrych moemy:
v konfigurowa rodowisko programu,
v wywietla informacje o obiektach wybranej bazy danych,
v wywoywa polecenie SQL, takie jak '( lub &"#.
Aby podczy si do wybranej bazy danych i wywietli informacje o tabeli :
1. Zaloguj si do bazy danych :
0@  

2. Wykonaj polecenie programu  :


A0!(

Zostan wywietlone podstawowe informacje o widoku: lista kolumn, typ danych


oraz skadnia instrukcji &"*" # bdcej podstaw widoku.
3. Aby wywietli list uytkownikw, ktrzy maj nadane uprawnienia do tego

obiektu wpisz (rysunek 2.6):


A00!(

Rysunek 2.6.
Za pomoc polece
programu psql
moemy uzyska
wiele cennych
informacji
o bazie danych

4. Zakocz prac programu:


A@

Wywoanie polecenia \0 bez parametru bdcego nazw obiektu w bazie danych spowoduje
wywietlenie listy uprawnie nadanych do wszystkich obiektw biecej bazy danych.

Rozdzia 2. v Administracja SZBD PostgreSQL

47

Lista wewntrznych polece programu   znajduje si w tabeli 2.2.


Tabela 2.2. Lista polece programu psql
Polecenie

Znaczenie

Przeczanie pomidzy trybem z wyrwnywaniem i bez wyrwnywania


wierszy wynikw

AP QPR
4PQQ

Podczenie do nowej bazy danych

A7K" B

Ustawienie nagwka tabeli w wyniku

A0

Wykonanie instrukcji SQL 7I# skopiowanie danych zewntrznych


do lub z bazy danych

A0 !

Wywietlenie zasad uytkowania i dystrybucji SZBD PostgreSQL

AK B

Opis tabeli (perspektywy, indeksu, sekwencji)

AT R RR3U

Wywietlenie listy tabel, indeksw, sekwencji bd perspektyw

AT0RR U

Wywietlenie uprawnie, tabel systemowych bd obiektw typu BLOB

A

Wywietlenie listy funkcji agregacji

AP Q

Wywietlenie listy komentarzy dla tabeli, typu, funkcji lub operatora

A

Wywietlenie listy funkcji

A

Wywietlenie listy operatorw

A

Wywietlenie listy typw

AP Q

Edycja biecego bufora zapyta lub pliku    za pomoc


zewntrznego edytora

AK B

Wywietlenie tekstu na standardowym urzdzeniu wyjciowym

A !K  B

Ustawienie kodowania na komputerze-kliencie

AK B

Zmiana separatora pl

A!K B

Wysanie zapytania do wewntrznego elementu przetwarzajcego


(a wynikw do pliku lub potoku)

AP   Q

Pomoc na temat skadni polece SQL; w celu wywietlenia szczegowych


informacji o wszystkich poleceniach naley wpisa =

A-

Wczenie trybu HTML

A K B

Wczytywanie i wykonywanie zapyta z pliku

Wywietlenie listy wszystkich baz danych

A (90 >A ( 0 >


A (  >A ( 8

Operacje z obiektami BLOB

AP Q

Wysanie wszystkich wynikw zapytania do pliku lub potoku

A0

Wywietlenie zawartoci biecego bufora zapyta

A0 KB

Ustawienie opcji wywietlania tabel. Dostpne s nastpujce opcje:



, 1, 90
,   0,  , 0, 0 ( , ,

1 
, 0
!

48

PostgreSQL 7.2. wiczenia praktyczne

Tabela 2.2. Lista polece programu psql cig dalszy


Polecenie

Znaczenie

A@

Zakoczenie dziaania programu 0@

A@K B

Zapis tekstu   do strumienia wynikowego zapyta

A

Kasowanie bufora zapyta

AP Q

Wywietlenie historii wykonywanych polece lub jej zapis do pliku

A K  BK


B

Ustawienie wartoci zmiennej wewntrznej

Wywietlanie tylko wierszy (bez nagwkw kolumn i liczby wierszy)

AKB

Znaczniki tabeli HTML

A K  B

Wyzerowanie wartoci zmiennej wewntrznej

A;K B

Zapis aktualnego bufora zapyta do pliku

A9

Wczenie trybu rozszerzonego dla wyniku

A5

Wywietlenie listy uprawnie dostpu do tabel

A[P   Q

Wyjcie do powoki lub wykonanie polecenia powoki

A <PC\YCARNKMW>

Uruchomienie polece czytanych z pliku <PC\YCARNKMW>

A

Wyzerowanie bufora

A\

Uzyskanie ekranu pomocy

Wydawanie polece jzyka SQL z programu psql


wiczenie 2.20.

Domylnie, znakiem koca pojedynczej instrukcji SQL dla programu   jest rednik.
Poniewa instrukcja moe zosta zapisana w dowolnej liczbie wierszy, program bdzie
czeka z wykonaniem instrukcji do momentu wykrycia znaku ).
Dodatkowo, program uatwia znalezienie bdu w wykonywanej wanie instrukcji, wywietlajc oprcz komunikatu bdu miejsce jego wystpienia.
Aby wywietli alfabetycznie uporzdkowan list utworzonych uytkownikw bazy
danych:
1. Zaloguj si do bazy danych 0:
0@  0


2. Wykonaj instrukcj SQL:


G7
>0
;
H)I*0!(
J-) B 
I)$)&'
L

Zwr uwag, e program 0@ rozpocz wykonywanie instrukcji dopiero po napotkaniu rednika nacinicie klawisza Enter powodowao jedynie przejcie do kolejnego wiersza.

Rozdzia 2. v Administracja SZBD PostgreSQL

49

3. Poniewa ostatni wiersz instrukcji zawiera bd skadniowy, program   zamiast


wykona polecenie, zwrci komunikat o bdzie nierozpoznanym sowie .
4. O ile tylko w Twoim systemie operacyjnym uruchomiona jest usuga bufora
klawiatury, naciskajc klawisz wywoasz ponownie wpisane ostatnio wiersze

polecenia. Wiedzc, e bd wystpi w ostatnim wierszu powtrz trzy pierwsze


wiersze instrukcji (po kadym naciskajc klawisz Enter), przywoaj ostatni wiersz
i popraw bd. Poprawna skadnia instrukcji przyjmie posta:
G7
>0
;
H)I*0!(
J-) B 
I)$)&#
L

5. Tym razem program wykona instrukcj i wywietli na ekranie wybrane dane

o uytkownikach (rysunek 2.7).


Rysunek 2.7.
Program psql
nie ma co prawda
opcji sprawdzania
poprawnoci
instrukcji,
ale wskazuje
lokalizacje bdu

Uruchamianie skryptw za pomoc programu psql


wiczenie 2.21.

Kolejn moliwoci programu   jest wykonanie skryptu zawierajcego zarwno instrukcje SQL, jak i polecenia wewntrzne programu.
Wielu administratorw zapisuje grupy instrukcji do pliku i korzysta z niego jak z prostego
skryptu. Odczytanie zestawu polece 0@ z pliku jest moliwe przy uyciu wewntrznego polecenia A .
1. Zaloguj si do bazy danych :
0@  

2. Wywietl dane o wszystkich uytkownikach:


G7=
H)I*0!(L

3. Zapisz ostatnio wykonywane polecenie (przechowywane w buforze) do pliku

\w selekt.sql.

50

PostgreSQL 7.2. wiczenia praktyczne


4. Za pomoc dowolnego edytora tekst wywietl zawarto pliku /home/postgres/selekt.sql.
5. Plik zawiera jedn instrukcj &"*" #. Zamknij okno edytora i przywr sesje
programu  .
6. Wykonaj instrukcje zapisane w pliku selekt.sql:
A  

7. Program wywietli dane o wszystkich uytkownikach bazy danych.

You might also like