Professional Documents
Culture Documents
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
Indeksy ........................................................................................................................65
30
3. Zapisz plik.
4. Zatrzymaj i ponownie uruchom proces .
5. Od tej chwili, wszystkie komputery o adresach IP rozpoczynajcych si od 192.168.
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.
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.
31
32
Rysunek 2.1.
Fragment
informacji
wywietlanych
podczas
aktualizacji
statystyk
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
6. Zapisz plik.
7. Zatrzymaj i ponownie uruchom proces .
Listing 2.2. Fragment pliku postgresql.conf
7
0 0(8 "
"
9( "
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
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
34
Bash c:\cygwin\cygwin.bat).
?
35
Rysunek 2.2.
Utworzona baza
danych nie zawiera
adnych obiektw
Rysunek 2.3.
Do przeczania
si pomidzy
bazami danych
suy polecenie
\c nazwa bazy danych
36
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)%,)M5MJ'-#'$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
EF>
M@
M 9 >
M@
1M 9 >
M@ 8M 9 >
M@ M 9 >
M@ M 9
FL
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 :
?
38
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 :
?
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
39
Tworzenie uytkownikw
wiczenie 2.11.
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 :
?
4. Okrel, czy nowy uytkownik bdzie mia prawo tworzenia nowych baz danych
40
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
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
41
Usuwanie uytkownikw
wiczenie 2.13.
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,)
42
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
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
Rysunek 2.5.
Wykonujc polecenie
\h ALTER GROUP
programu psql
wywietli
kontekstowy
plik pomocy
43
Nadawanie uprawnie
wiczenie 2.16.
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
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
grupy uytkownikw:
)SI+
Uruchamianie psql
wiczenie 2.18.
Domylne wartoci nazwy bazy danych, nazwy uytkownika, nazwy hosta serwera oraz portu
mona zastpi poprzez ustawienie zmiennych rodowiskowych: .$%%&%, .,), .-I
oraz .I).
45
Znaczenie
4%
4<>
4< > Okrelenie bazy danych, do ktrej ma nastpi podczenie (domylnie warto
zmiennej V.$%%&% lub bieca nazwa zalogowanego uytkownika)
4
4
4< >
4H<! ">
4<>
4-
4
4< >
40<>
4@
4)<! ">
4
4
4<>
4S
4J
49
4Y
46
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@
Rysunek 2.6.
Za pomoc polece
programu psql
moemy uzyska
wiele cennych
informacji
o bazie danych
Wywoanie polecenia \0 bez parametru bdcego nazw obiektu w bazie danych spowoduje
wywietlenie listy uprawnie nadanych do wszystkich obiektw biecej bazy danych.
47
Znaczenie
AP QPR
4PQQ
A7K"B
A0
A0 !
AKB
AT R RR3U
AT0RRU
A
APQ
A
A
A
AP Q
AKB
AKB
Zmiana separatora pl
A!K B
AP Q
A-
A K B
AP Q
A0
A0 KB
48
Znaczenie
A@
A@KB
A
AP Q
AKB
A;K B
A9
A5
A[P Q
A <PC\YCARNKMW>
A
Wyzerowanie bufora
A\
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
Zwr uwag, e program 0@ rozpocz wykonywanie instrukcji dopiero po napotkaniu rednika nacinicie klawisza Enter powodowao jedynie przejcie do kolejnego wiersza.
49
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@
\w selekt.sql.
50