Download as pdf or txt
Download as pdf or txt
You are on page 1of 20

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

Bazy danych SQL.


Teoria i praktyka
Autor: Wiesaw Dudek
ISBN: 83-246-0503-7
Format: B5, stron: 4882
Przykady na ftp: 1929 kB

Bazy danych to aplikacje, z ktrych korzystaj niemal wszyscy uytkownicy


komputerw, czasem nawet nie zdajc sobie z tego sprawy. W bazach danych
przechowywane s informacje o uytkownikach witryny WWW, kontrahentach firmy
czy numerach telefonw abonentw operatora telekomunikacyjnego. Baz danych jest
rwnie rejestr systemu Windows i ksika telefoniczna w telefonie komrkowym.
Jednak aby zapisa dane w formacie odpowiednim dla aplikacji niezbdne s
standardy. Wspczenie wykorzystywany relacyjny model przechowywania danych
sprawdza si znakomicie. Do manipulowania danymi zapisanymi w bazach stosowany
jest inny standard: jzyk SQL.
Ksika Bazy danych SQL. Teoria i praktyka przedstawia wszystkie zagadnienia
zwizane z przechowywaniem i przetwarzaniem danych we wspczesnych aplikacjach.
Przeczytasz w niej o relacyjnym i obiektowym modelu danych oraz najczciej
stosowanych systemach zarzdzania bazami danych. Dowiesz si, jakie instrukcje
jzyka SQL wykorzystywane s do wprowadzania danych, przetwarzania ich
i wybierania z bazy. Nauczysz si optymalizowa zapytania oraz stosowa indeksy
i procedury skadowane. W ksice znajdziesz rwnie praktyczne wskazwki
dotyczce konfigurowania serwerw baz danych i administrowania nimi.
Przechowywanie prostych danych
Relacyjny i obiektowy model danych
Typy danych w jzyku SQL
Instrukcje jzyka SQL
Indeksy, wyzwalacze i procedury skadowane
Manipulowanie danymi
Optymalizacja zapyta
Charakterystyka najpopularniejszych systemw zarzdzania bazami danych

Wydawnictwo Helion
ul. Kociuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl

Poznaj tajniki wspczesnych mechanizmw przechowywania informacji

Spis treci
Rozdzia 1. Sposoby na przechowywanie prostych danych .................................... 7
Typy plikw .......................................................................................................................7
Pliki tekstowe ...............................................................................................................7
Pliki typowane .............................................................................................................9
Pliki strumieniowe .....................................................................................................10
Pliki amorficzne .........................................................................................................14
Przechowywanie konfiguracji programu ...........................................................................18
Rejestr systemu Windows ..........................................................................................18
Pliki INI .....................................................................................................................21
Pliki XML ..................................................................................................................23
Zaawansowane rozwizania systemu Windows ..............................................................24
Pliki odwzorowane .....................................................................................................24
Pliki ustrukturalizowanego skadowania ...................................................................35

Rozdzia 2. Baza danych rozwizanie dla wymagajcych ................................ 47


Typy baz danych ..............................................................................................................49
Relacyjny model danych ............................................................................................49
Obiektowy model danych ..........................................................................................52
SQL (strukturalny jzyk zapyta) ....................................................................................53
Charakterystyka jzyka SQL .....................................................................................53
Typy danych ...............................................................................................................57
Generowanie unikalnych kluczy ................................................................................75
Wartoci NULL .........................................................................................................79
Predykaty ...................................................................................................................80
Funkcje agregujce ....................................................................................................98
Wyraenia SQL ........................................................................................................105
Konstruktor wartoci wierszy i tabel .......................................................................128
Transakcje ................................................................................................................130
SQL jzyk definicji danych ................................................................................131
SQL jzyk manipulowania danymi .....................................................................171
SQL jzyk nadzoru .............................................................................................191
Optymalizowanie zapyta ........................................................................................193
Tabele sownikowe ..................................................................................................227
Projektowanie baz danych ..............................................................................................227
Projektowanie logiczne ............................................................................................227
Projektowanie fizyczne ............................................................................................235
Projektowanie danych. Reprezentacje danych rzeczywistych .................................238

D:\Dane\Druk\Bazy danych SQL. Teoria i praktyka\09_druk\_Spis treci.doc

Bazy danych SQL. Teoria i praktyka

Rozdzia 3. LDAP hierarchiczna baza danych ............................................... 245


Krtka charakterystyka bazy ..........................................................................................245
LDIF .........................................................................................................................246
Schemat ....................................................................................................................248
Zalety i wady ..................................................................................................................252
Instalacja i konfiguracja .................................................................................................253
Popularne konfiguracje serwera LDAP ...................................................................254
Instalacja ksiki adresowej LDAP .........................................................................259
Konfigurowanie bazy SQL jako backendu ..........................................................259
Administrowanie serwerem ............................................................................................263
Uruchamianie i zatrzymywanie serwera ..................................................................263
Replikacja ................................................................................................................264
Bezpieczestwo ..............................................................................................................265
Prawa dostpu do serwera ........................................................................................269
Tworzenie kopii bazy danych ..................................................................................271
Narzdzia ........................................................................................................................271
Interfejsy dostpu do serwera LDAP .............................................................................273
Java ..........................................................................................................................273
Linki ...............................................................................................................................279

Rozdzia 4. Oracle 10g ................................................................................... 281


Krtka charakterystyka dostpnych dystrybucji ............................................................281
Zalety i wady ..................................................................................................................283
Instalacja i konfiguracja .................................................................................................285
Windows ..................................................................................................................285
Linux ........................................................................................................................287
Windows i Linux ......................................................................................................290
Administrowanie serwerem ............................................................................................290
Uruchamianie i zatrzymywanie serwera ..................................................................291
Zarzdzanie bazami danych .....................................................................................293
Konfiguracja zestawu znakw .................................................................................298
Replikacja bazy ........................................................................................................300
Bezpieczestwo ..............................................................................................................301
Prawa dostpu do serwera, uytkownicy i role ........................................................302
Tworzenie kopii bezpieczestwa i odzyskiwanie danych .......................................308
Narzdzia ........................................................................................................................310
SQLPlus ...................................................................................................................310
Exp(ort), Imp(ort) ....................................................................................................311
SQLLoader ...............................................................................................................312

Rozdzia 5. SQL Server 2005 .......................................................................... 315


Krtka charakterystyka dostpnych dystrybucji ............................................................315
Zalety i wady ..................................................................................................................317
Instalacja i konfiguracja .................................................................................................319
Opis instalacji MSDE w systemie Windows 2000 ..................................................319
Administrowanie serwerem ............................................................................................322
Uruchamianie i zatrzymywanie serwera ..................................................................323
Zarzdzanie bazami danych .....................................................................................323
Konfiguracja zestawu znakw .................................................................................329
Replikacja bazy ........................................................................................................330
Bezpieczestwo ..............................................................................................................332
Prawa dostpu do serwera, uytkownicy i role ........................................................334
Tworzenie kopii bezpieczestwa i odzyskiwanie danych .......................................340
Metadane ........................................................................................................................348

D:\Dane\Druk\Bazy danych SQL. Teoria i praktyka\09_druk\_Spis treci.doc

Spis treci

5
Narzdzia ........................................................................................................................348
OSQL .......................................................................................................................348
SQLCmd ..................................................................................................................350
SQLMaint ................................................................................................................351
BCP (Bulk Copy Program) ......................................................................................352
SQLDiag ..................................................................................................................354
Cliconfg ....................................................................................................................354
Microsoft SQL Server Management Studio Express ...............................................354

Rozdzia 6. MySQL 5.0 ................................................................................... 355


Krtka charakterystyka dostpnych dystrybucji ............................................................355
Zalety i wady ..................................................................................................................356
Instalacja i konfiguracja .................................................................................................358
Windows ..................................................................................................................358
Linux ........................................................................................................................361
Administrowanie serwerem ............................................................................................367
Uruchamianie i zatrzymywanie serwera ..................................................................368
Zarzdzanie bazami danych .....................................................................................369
Konfiguracja zestawu znakw .................................................................................372
Replikacja bazy ........................................................................................................373
Klaster MySQL ........................................................................................................376
Bezpieczestwo ..............................................................................................................379
Konfigurowanie bezpiecznych pocze SSL .........................................................380
Prawa dostpu do serwera, uytkownicy i role ........................................................381
Tworzenie kopii bezpieczestwa i odzyskiwanie danych .......................................386
Metadane ........................................................................................................................391
Narzdzia ........................................................................................................................391
Mysql .......................................................................................................................391
Mysqladmin .............................................................................................................394
Mysqldump ..............................................................................................................395
Mysqlimport .............................................................................................................396
Mysqlbinlog .............................................................................................................396
Mysqlcheck ..............................................................................................................397
Mysqlshow ...............................................................................................................397
Myisamchk ...............................................................................................................397
Myisampack .............................................................................................................398
MySQL Administrator .............................................................................................398
MySQLInstanceConfig ............................................................................................398

Rozdzia 7. PostgreSQL 8.1 ............................................................................ 399


Krtka charakterystyka dostpnych dystrybucji ............................................................399
Zalety i wady ..................................................................................................................399
Instalacja i konfiguracja .................................................................................................401
Windows ..................................................................................................................401
Linux ........................................................................................................................402
Administrowanie serwerem ............................................................................................410
Uruchamianie i zatrzymywanie serwera ..................................................................411
Zarzdzanie bazami danych .....................................................................................413
Konfiguracja zestawu znakw .................................................................................414
Konserwacja bazy danych ........................................................................................415
Bezpieczestwo ..............................................................................................................416
Konfigurowanie bezpiecznych pocze SSL i tunelowanie SSH ..........................417
Prawa dostpu do serwera, uytkownicy i role ........................................................418
Tworzenie kopii bezpieczestwa i odzyskiwanie danych .......................................420

D:\Dane\Druk\Bazy danych SQL. Teoria i praktyka\09_druk\_Spis treci.doc

Bazy danych SQL. Teoria i praktyka


Metadane ........................................................................................................................423
Narzdzia ........................................................................................................................424
Narzdzia od strony serwera ....................................................................................424
Narzdzia od strony klienta .....................................................................................426

Rozdzia 8. Firebird 1.5 .................................................................................. 431


Krtka charakterystyka dostpnych dystrybucji ............................................................431
Zalety i wady ..................................................................................................................431
Instalacja i konfiguracja .................................................................................................433
Windows ..................................................................................................................433
Linux ........................................................................................................................434
Administrowanie serwerem ............................................................................................436
Uruchamianie i zatrzymywanie serwera ..................................................................437
Zarzdzanie bazami danych .....................................................................................439
Konfiguracja zestawu znakw .................................................................................440
Konserwacja bazy danych ........................................................................................440
Replikacja bazy ........................................................................................................444
Bezpieczestwo ..............................................................................................................445
Konfigurowanie bezpiecznego tunelu pomidzy klientem i serwerem ...................447
Prawa dostpu do serwera, uytkownicy i role ........................................................449
Tworzenie kopii bezpieczestwa i odzyskiwanie danych .......................................451
Metadane ........................................................................................................................452
Narzdzia ........................................................................................................................454
isql ............................................................................................................................454
gbak ..........................................................................................................................454
gfix ...........................................................................................................................455
gsec ..........................................................................................................................456
gstat ..........................................................................................................................457
qli .............................................................................................................................457

Skorowidz ..................................................................................... 459

D:\Dane\Druk\Bazy danych SQL. Teoria i praktyka\09_druk\_Spis treci.doc

Rozdzia 3.

LDAP hierarchiczna
baza danych
Opis technologii LDAP prezentowany w tym rozdziale bdzie si gwnie opiera
na dystrybucji serwera OpenLDAP w wersji 2.x (www.OpenLDAP.org).

Krtka charakterystyka bazy


Z pojciem LDAP wie si baza danych oparta na hierarchicznej strukturze, o typie
danych atrybut-warto oraz protokole dostpu dziaajcym w oparciu o TCP/IP.
Hierarchia bazy danych przypomina drzewo katalogu plikw (rysunek 3.1), gdzie DN
(distinguish name) odpowiada ciece dostpu do zbioru atrybutw i identyfikuje wze
drzewa (entry).
Kady taki wze posiada skojarzony z nim zbir obiektw, ktre jednoznacznie definiuj zbir jego dozwolonych atrybutw. Obiekty i atrybuty dla bazy danych LDAP
definiuje schemat bazy danych (patrz: punkt Schemat).
Rysunek 3.1.
Hierarchiczna
struktura bazy LDAP

D:\Dane\Druk\Bazy danych SQL. Teoria i praktyka\09_druk\03.doc

(26-09-06)

245

246

Bazy danych SQL. Teoria i praktyka

Zaoeniem LDAP jest uzyskanie prostoty dostpu do danych oraz niewielka ilo
operacji zapisu w porwnaniu z operacjami odczytu obserwowana w rzeczywistych systemach. W wyniku tych zaoe LDAP nie oferuje transakcji.
Serwer LDAP moe by skonfigurowany tak, aby delegowa odpowiedzialno za podga do innego serwera LDAP dziaajcego zwykle na innym komputerze (przedstawia
to rysunek 3.2). Dziki takiemu rozwizaniu bazy LDAP charakteryzuj si du skalowalnoci.

Rysunek 3.2. Przydzia wzw do serwerw LDAP

W systemie skonfigurowanym jak na rysunku 3.2 kade danie dostpu do wza


o DN: dzielnica=podgorze, miasto=Krakow, kraj=PL, ktre zostanie zgoszone do serwera LDAP1, zostanie przekierowane do serwera LDAP3, ktry zosta oddelegowany
do obsugi podgazi "dzielnica=podgorze,miasto=Krakow,kraj=PL". Poszczeglne etapy
obsugi dania przedstawia rysunek 3.3.
Obsuga przekierowania powinna zosta zaimplementowana przez program klienta.
Istnieje jednak bardzo wiele programw klienckich nieobsugujcych przekierowa
i ignorujcych informacj otrzyman od serwera LDAP1.

LDIF
LDIF (LDAP Data Intercharge Format) jest formatem tekstowym reprezentujcym
dane LDAP. Poniewa uyto formatu tekstowego, wic dane te mog by z atwoci
edytowane przez uytkownika.

246 (26-09-06)

D:\Dane\Druk\Bazy danych SQL. Teoria i praktyka\09_druk\03.doc

Rozdzia 3. LDAP hierarchiczna baza danych

247

Rysunek 3.3.
Obsuga
dania dostpu
do oddelegowanego
wza

W uproszczeniu format pliku LDIF przedstawia si nastpujco:


# komentarz
dn: <nazwa jednoznaczna>
<atrybut>: <warto>
<atrybut>: <warto>

Pliki LDIF mog jednak posiada bogatsz struktur. Informacje na ten temat mona
znale w dokumencie RFC 2849 [1].
Przykad pliku LDIF:
dn: identyfikator=kowalj,miasto=krakow,kraj=pl
objectclass: osoba
identyfikator: kowalj
nazwisko: kowal
imie: jan
wiek: 20

Tworzc pliki LDIF, moemy atwo przygotowa baz danych dla serwera LDAP,
a nastpnie skorzysta z narzdzia ldiff2ldbm, ktre potrafi utworzy na jego podstawie baz ldbm.
ldif2ldbm -f slapd.conf -i my.ldif

Odwrotn operacj konwersji bazy danych ldbm na format LDIF umoliwia ldbmcat.
ldbmcat -n id2entry.dbb > my.ldif

Jednak nie moemy uy narzdzia ldif2ldbm, jeli jako bazy danych dla serwera LDAP
(tzw. backend) uywamy bazy innej ni ldbm. W tej sytuacji mamy cigle do dyspozycji
standardowe narzdzia dostarczane z serwerem i opisane w punkcie Narzdzia takie jak:
ldapadd, ldapmodify, ldapdelete itd..

D:\Dane\Druk\Bazy danych SQL. Teoria i praktyka\09_druk\03.doc

(26-09-06)

247

248

Bazy danych SQL. Teoria i praktyka

Utworzenie bazy danych na podstawie pliku LDIF za pomoc ldapadd przedstawia si


nastpujco:
ldapadd -v -D "identyfikator=manager,miasto=krakow,kraj=PL" -w manager -f baza.ldif

Jeli najpierw zatrzymamy serwer, moemy posuy si rwnie narzdziem slapadd:


slapadd -l baza.ldif -cv

Schemat
Schemat LDAP zawiera definicje bazy danych: typy przechowywanych danych, dozwolone wartoci lub zakresy atrybutw, wymagalno lub opcjonalno atrybutw,
informacje o wizach narzuconych na przechowywane wartoci, takich jak brak duplikatw, czy informacje o sposobie porwnywania wartoci. Schemat jest wic definicj
struktury bazy.
Schematy s odczytywane podczas startu serwera i tylko dane zgodne z reguami zawartymi w schemacie s dozwolone w bazie danych LDAP.
Z serwerem OpenLDAP dostarczanych jest kilka plikw schematw, ktre mog okaza
si uyteczne dla uytkownika. Jedynie schemat core.schema jest wymagany do pracy
serwera LDAP, pozostae s opcjonalne.
W dostarczonych z serwerem OpenLDAP plikach schematw zdefiniowano wiele obiektw i atrybutw, ktre mog by wykorzystane przy tworzeniu wasnej bazy danych.
Przykadowo tabela 3.1 zawiera list atrybutw wraz z odpowiadajcymi im obiektami,
ktre mog okaza si przydatne podczas tworzenia wasnej bazy uytkownikw.
Oczywicie uytkownik moe w miar swoich potrzeb tworzy wasne pliki schematw,
ktre moe doczy do pliku konfiguracyjnego sldap.conf za pomoc instrukcji include.
Przykad prostego pliku schematu przedstawia listing 3.1:
Listing 3.1. Przykadowy plik schematu
# Autor: Wiesaw Dudek
# definicja typw atrybutw
attributetype ( 1.3.6.1.4.1.4203.666.1 NAME 'identyfikator'
EQUALITY caseIgnoreMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
SINGLE-VALUE)
attributetype ( 1.3.6.1.4.1.4203.666.2 NAME 'nazwisko'
EQUALITY caseIgnoreMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
SINGLE-VALUE)
attributetype ( 1.3.6.1.4.1.4203.666.3 NAME 'kraj'
EQUALITY caseIgnoreMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
SINGLE-VALUE)

248 (26-09-06)

D:\Dane\Druk\Bazy danych SQL. Teoria i praktyka\09_druk\03.doc

Rozdzia 3. LDAP hierarchiczna baza danych

249

Tabela 3.1. Lista waniejszych atrybutw zdefiniowanych w schematach dostarczonych


wraz z serwerem OpenLDAP
Atrybut

Nazwa pola
w MSOutlook

Plik schematu
z definicj

Nazwa obiektu,
w ktrym wystpuje
atrybut

cn

Name:

core.schema

objectPerson

givenName

First Name:

core.schema

inetOrgPerson

initials

Middle Name:

core.schema

inetOrgPerson

sn

Last Name:

core.schema

objectPerson

mail

Email Address:

core.schema

inetOrgPerson

title

Job Title:

core.schema

organizationalPerson

physicalDeliveryOfficeName

Office:

core.schema

organizationalPerson

Company Name:

core.schema

inetOrgPerson

postalAddress

Business
Street Address:

core.schema

organizationalPerson

Business City:

core.schema

organizationalPerson

st

Business
State/Province:

core.schema

organizationalPerson

postalCode

Business Zip Code:

core.schema

organizationalPerson

Business
Country/Region:

core.schema

officePerson

telephoneNumber

Business:

core.schema

organizationalPerson

facsimileTelephoneNumber

Business Fax:

core.schema

organizationalPerson

homePhone

Home:

cosine.schema

inetOrgPerson

mobile

Mobile:

cosine.schema

inetOrgPerson

homePostalAddress

Home Street Address:

cosine.schema

inetOrgPerson

manager

Manager:

cosine.schema

inetOrgPerson

pager

Pager:

cosine.schema

inetOrgPerson

attributetype ( 1.3.6.1.4.1.4203.666.4 NAME 'miasto'


EQUALITY caseIgnoreMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
SINGLE-VALUE)
attributetype ( 1.3.6.1.4.1.4203.666.5 NAME 'dzielnica'
EQUALITY caseIgnoreMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
SINGLE-VALUE)
attributetype ( 1.3.6.1.4.1.4203.666.6 NAME 'imie'
DESC 'Imiona'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)

D:\Dane\Druk\Bazy danych SQL. Teoria i praktyka\09_druk\03.doc

(26-09-06)

249

250

Bazy danych SQL. Teoria i praktyka


attributetype ( 1.3.6.1.4.1.4203.666.7 NAME 'wiek'
EQUALITY caseIgnoreMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
SINGLE-VALUE)
#definicja typw obiektw
objectclass ( 1.3.6.1.4.1.4203.666.8 NAME 'osoba'
MUST ( identyfikator $ nazwisko $ imie)
MAY ( wiek ) )
objectclass (1.3.6.1.4.1.4203.666.9 NAME 'miasteczko'
MUST ( miasto ))
objectclass ( 1.3.6.1.4.1.4203.666.10 NAME 'rejon'
MUST ( dzielnica ))

Jak widzimy, kady element schematu posiada wasny identyfikator obiektu, tzw. OID
(Object Identifier), np. OID elementu "rejon" to 1.3.6.1.4.1.4203.666.10. Numer ten
rozpoczyna si od prefiksu przyznanego organizacji przez waciwy urzd (np. przez
urzd IANA[2]). W przykadzie uylimy prefiksu 1.3.6.1.4.1.4203.666, ktry jest
zarezerwowany przez OpenLDAP.org dla celw eksperymentalnych. Jednak moglimy uy dowolnego prefiksu zgodnego z notacj OID niekolidujcego z prefiksami
uytymi w innych uywanych przez nas schematach, poniewa nasz plik schematu jest
przeznaczony tylko do wasnego uytku. Kolejne elementy schematu otrzymuj numery
rozpoczynajce si od prefiksu: 1.3.6.1.4.1.4203.666.1, 1.3.6.1.4.1.4203.666.2 itp.
W naszym przykadowym pliku schematu pojawiy si dwa typy definicji: definicje
typw atrybutw rozpoczynajce si od sowa attributetype oraz definicje typw
obiektw rozpoczynajce si od sowa objectclass. Definicja typu obiektu okrela,
jakie atrybuty musz lub mog sta si jego skadnikami.

Skadowe definicji typu atrybutu


NAME nazwa atrybutu. Nazwa ta, podobnie jak numer OID, powinna by

unikalna. Jeli schemat bdzie publicznie wykorzystywany, dobrym pomysem


jest poprzedzanie nazw naszych atrybutw prefiksem organizacji, podobnie jak
to ma miejsce w przypadku numeru OID.
Dozwolone jest uycie kilku nazw dla atrybutu, np. attributetype ( 2.5.4.7 NAME
( 'l' 'localityName' ) SUP name ).
DESC opis atrybutu.
SUP deklaracja dziedziczenia; definiowanie nowego atrybutu na podstawie
istniejcego.

Przykad pochodzcy z pliku core.schema definiowanie atrybutu member:


attributetype ( 2.5.4.31 NAME 'member' SUP distinguishedName )

250 (26-09-06)

D:\Dane\Druk\Bazy danych SQL. Teoria i praktyka\09_druk\03.doc

Rozdzia 3. LDAP hierarchiczna baza danych

251

Atrybut member dziedziczy waciwoci atrybutu distinguishedName.


EQUALITY okrela regu porwnywania elementw (patrz: tabela 3.2).
ORDERING okrela regu porwnywania elementw za pomoc operatorw
<= i >= (moliwe wartoci patrz: tabela 3.2).
Tabela 3.2. Reguy dopasowywania
Nazwa

Stosowana do

Znaczenie

booleanMatch

EQUALITY

porwnywanie wartoci logicznych

caseIgnoreMatch

EQUALITY

brak wraliwoci na wielko liter i odstpy

caseExactMatch

EQUALITY

wraliwe na wielko liter, niewraliwe


na odstpy

distinguishedNameMatch

EQUALITY

porwnywanie wartoci DN

integerMatch

EQUALITY

porwnywanie liczb cakowitych

numericStringMatch

EQUALITY

porwnywanie cigw numerycznych

octetStringMatch

EQUALITY

porwnywanie cigw bajtw

objectIdentiferMatch

EQUALITY

porwnywanie OID-w

caseIgnoreOrderingMatch

ORDERING

niewraliwe na wielko liter i odstpy

caseExactOrderingMatch

ORDERING

wraliwe na wielko liter, niewraliwe


na odstpy

integerOrderingMatch

ORDERING

porwnywanie liczb cakowitych

numericStringOrderingMatch

ORDERING

porwnywanie cigw numerycznych

octetStringOrderingStringMatch

ORDERING

porwnywanie cigw bajtw

octetStringSubstringsStringMatch

ORDERING

porwnywanie cigw bajtw

caseIgnoreSubstringsMatch

SUBSTR

niewraliwe na wielko liter i odstpy

caseExactSubstringsMatch

SUBSTR

wraliwe na wielko liter, niewraliwe


na odstpy

numericStringSubstringsMatch

SUBSTR

porwnywanie cigw numerycznych

SUBSTR okrela regu porwnywania elementw za pomoc znakw

wieloznacznych (wildcards) (patrz: tabela 3.2).


SYNTAX typ atrybutu (najczciej wykorzystywane typy atrybutw patrz:

tabela 3.3).
Przykad deklaracji:
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{30} okrela atrybut typu

DirectoryString kodowany w UTF-8 o dugoci maksymalnej 30 znakw.


SINGLE-VALUE blokuje wstawianie duplikatw.
NO-USER-MODIFICATION blokuje moliwo modyfikacji atrybutu.
COLLECTIVE atrybut bdzie definiowa kolekcj wzw.
USAGE jedna z wartoci: userApplications, directoryOperation,
distributedOperation, dSAOperation.

D:\Dane\Druk\Bazy danych SQL. Teoria i praktyka\09_druk\03.doc

(26-09-06)

251

252

Bazy danych SQL. Teoria i praktyka

Tabela 3.3. Typy atrybutw (SYNTAX)


Nazwa

OID

Znaczenie

boolean

1.3.6.1.4.1.1466.115.121.1.7

warto logiczna

DirectoryString

1.3.6.1.4.1.1466.115.121.1.15

cig znakw kodowany w UTF-8


Mona zapisywa polskie znaki.

distinguishedName

1.3.6.1.4.1.1466.115.121.1.12

LDAP DN

integer

1.3.6.1.4.1.1466.115.121.1.27

liczba cakowita

numericString

1.3.6.1.4.1.1466.115.121.1.36

cig znakw numerycznych

OID

1.3.6.1.4.1.1466.115.121.1.38

identyfikator obiektu

octetString

1.3.6.1.4.1.1466.115.121.1.40

cig bajtw, np. rysunek lub inny obiekt


binarny kodowany w standardzie Base64

Skadowe definicji typu obiektu


NAME nazwa obiektu. Nazwa ta powinna by unikalna.
DESC opis obiektu.
SUP deklarowanie dziedziczenia (okrelanie nowego obiektu na podstawie

istniejcego).
ABSTRACT deklarowanie obiektu abstrakcyjnego, tj. bdcego punktem wyjcia
do definiowania nowych obiektw.
MUST deklarowanie atrybutw, ktre musz towarzyszy obiektowi.
MAY deklarowanie atrybutw, ktre mog (ale nie musz) towarzyszy
obiektowi.

Zalety i wady
W podrozdziaach Zalety i wady standardowo wystpujcych w kadym z nastpnych
rozdziaw zostan przedstawione wybrane cechy opisywanego systemu, ktre z rnych
powodw zasuguj na uwag. Trzeba jednak pamita, e sytuacja na rynku informatycznym zmienia si z dnia na dzie i opisywane wady mog zosta usunite w kolejnych wersjach, a zalety stan si standardem na rynku tego typu oprogramowania.
Przedstawione w tej ksice zestawienia maj jednak da Czytelnikowi wyobraenie
na temat biecej sytuacji. Sam uytkownik zdecyduje, ktre z tych cech maj dla niego
znaczenie. By moe pewna wada zdyskwalifikuje produkt pod ktem jakiego wykorzystania. Z drugiej strony uytkownik moe chcie skorzysta z pewnej opcji dostpnej
w danym produkcie, ktra z pozoru wydawaaby si mao istotna.
ledzc zapotrzebowanie na pewne rozwizania, wydaje si, e stworzenie listy wad
i zalet ma sens. Uytkownik moe je traktowa jako pewien gos w dyskusji.

252 (26-09-06)

D:\Dane\Druk\Bazy danych SQL. Teoria i praktyka\09_druk\03.doc

Rozdzia 3. LDAP hierarchiczna baza danych

253

Przedstawiajc w duym skrcie i z pewnoci nie wyczerpujc tematu, mona wymieni zalety i wady technologii LDAP.
Zalety:
mae wymagania sprztowe;
atwo integracji z innym oprogramowaniem (serwerami SQL, programami

pocztowymi itp.);
bardzo dobra skalowalno;
prostota w uyciu.

Wady:
maa szybko i moliwoci w porwnaniu z bazami danych SQL;
brak transakcji.

Podsumowanie
Zapytania do bazy danych SQL s duo szybsze ni odpowiadajce im zapytania do
bazy LDAP. Co wicej, efektywno LDAP moe by nawet kilkadziesit razy mniejsza ni bazy danych SQL. Wybr rozwizania moe wic wydawa si bardzo prosty,
jednak naley pamita, e bazy LDAP maj te sporo zalet. Zalety te powoduj, e
cigle s one obiektem zainteresowania i staj si standardem dla pewnych rozwiza, np.: systemu logowania uytkownikw, systemu ksiek adresowych, informacji
o uytkownikach itd. Do zalet tych naley gwnie prostota i atwo integracji z innym oprogramowaniem. Otwarty protok LDAP i wsppraca serwerw LDAP z innym
oprogramowaniem, w szczeglnoci z bazami danych SQL, moe pomc w integracji
systemw bdcych w dyspozycji uytkownika.

Instalacja i konfiguracja
Instalacja serwera OpenLDAP jest stosunkowo prosta. Z pewnoci bdzie wymaga
troch wicej wysiku w systemie Linux, zwaszcza jeli zechcemy skonfigurowa bezpieczne uwierzytelnienie np. przez SSL.
OpenLDAP jest darmowym oprogramowaniem, ktre mona pobra ze strony www.
openldap.org.
Instalacja serwera OpenLDAP zarwno w systemie Windows, jak i w systemie Linux
przebiega bardzo podobnie i skada si z nastpujcych etapw:
1. Zainstalowanie oprogramowania serwera.
2. Utworzenie plikw schematu bazy danych (patrz: punkt Schemat).
3. Skonfigurowanie serwera polegajce na modyfikacji pliku slapd.conf

(patrz: punkt: Plik slapd.conf).

D:\Dane\Druk\Bazy danych SQL. Teoria i praktyka\09_druk\03.doc

(26-09-06)

253

254

Bazy danych SQL. Teoria i praktyka


4. Utworzenie pliku LDIF z danymi naszej nowej bazy danych

(patrz: punkt LDIF).


5. Uruchomienie serwera LDAP (patrz: punkt Uruchamianie i zatrzymywanie

serwera).
6. Utworzenie bazy danych na podstawie pliku LDIF (patrz: punkt LDIF).

Standardowe porty, na ktrych nasuchuje serwer LDAP, to port 389 dla poczenia
nieszyfrowanego oraz 636 dla pocze szyfrowanych TLS/SSL.

Popularne konfiguracje serwera LDAP


Najpopularniejsze konfiguracje serwera LDAP przedstawiono na kolejnych rysunkach.
Niektre z nich pozwalaj na rozoenie obcienia na kilka serwerw (patrz: rysunek 3.5
i rysunek 3.6), celem innych jest dodatkowo uzyskanie bezpieczestwa danych (patrz:
rysunek 3.6).

Konfiguracja podstawowa
Jest to konfiguracja domylna tworzona podczas instalacji serwera LDAP, na ktr
skada si jeden serwer (patrz: rysunek 3.4). dania nadchodzce od strony klienta s
cakowicie przetwarzane na tym serwerze. Jeli serwer nie potrafi obsuy da, informuje o tym i nie odsya klienta do innych serwerw LDAP.
Rysunek 3.4.
Konfiguracja
podstawowa

Rysunek 3.5.
Konfiguracja
z serwerami
referencyjnymi

254 (26-09-06)

D:\Dane\Druk\Bazy danych SQL. Teoria i praktyka\09_druk\03.doc

Rozdzia 3. LDAP hierarchiczna baza danych

255

Rysunek 3.6. Konfiguracja z replikacj typu MASTER-SLAVE

Konfiguracja z serwerami referencyjnymi


Ta konfiguracja pozwala uzyska sie powizanych ze sob serwerw LDAP, ktre
odsyaj klientw do siebie nawzajem w zalenoci od moliwoci obsuenia ich da.
Na rysunku 3.5 klient w kroku 2. otrzymuje od serwera LDAP1 referencj do serwera
LDAP2, ktry zdaniem serwera LDAP1 jest w stanie obsuy danie klienta. Klient
po otrzymaniu referencji ponawia danie, kierujc je ju do waciwego serwera.
Serwery LDAP obsuguj dwa rodzaje referencji:
1. Referencje definiowane w pliku slapd.conf za pomoc sowa referral
referral ldap://root.openldap.org/

Jeli danie klienta dotyczy wza spoza obsugiwanej domeny okrelonej


poprzez sowo suffix, serwer zwraca klientowi referencj do waciwego
serwera LDAP (ldap://root.openldap.org), ktry moe obsuy danie
klienta lub odesa go do innego serwera.
Na przykad: jeli w pliku slapd.conf okrelono
suffix miasto=krakow,kraj=pl

danie klienta dotyczce wza miasto=warszawa,kraj=pl zwrci referencj


zdefiniowan w referral.
2. Referencje definiowane dla wza poprzez przypisanie wzowi obiektu
referral
dn: dc=poddrzewo,dc=myserver,dc=pl
objectClass: referral
objectClass: extensibleObject
dc: poddrzewo
ref: ldap://myserver.pl/dc=poddrzewo,dc=myserver,dc=pl

D:\Dane\Druk\Bazy danych SQL. Teoria i praktyka\09_druk\03.doc

(26-09-06)

255

256

Bazy danych SQL. Teoria i praktyka

Kade odwoanie do podgazi dc=poddrzewo,dc=myserver,dc=pl zwrci


referencj: ldap://myserver.pl/dc=poddrzewo,dc=myserver,dc=pl. W ten sposb
obsuga tej podgazi zostanie oddelegowana do serwera myserver.pl.
Niestety wiele narzdzi klienta nie potrafi zinterpretowa otrzymanej od serwera LDAP
referencji i ponowi dania z wykorzystaniem otrzymanej referencji.

Konfiguracja z replikacj typu MASTER-SLAVE


Konfiguracja ta pozwala zmniejszy ryzyko utraty danych w przypadku awarii i poprawi bezpieczestwo systemu, poniewa dane s replikowane do innych baz danych
LDAP. Dodatkow korzyci uzyskiwan tutaj jest rozproszenie danych, ktre podobnie jak w poprzednio omwionym przypadku pozwala na rozoenie obcienia serwerw. Przykadowo: serwer LDAP2 moe obsugiwa jedynie modyfikacje danych,
natomiast serwer LDAP1 (replika) suy do odczytywania i przegldania danych.
Konfiguracja ta jest oparta na architekturze MASTER-SLAVE. MASTER jest serwerem
gwnym, a modyfikacje jego bazy danych s propagowane dalej i zapisywane do baz
danych wszystkich skonfigurowanych serwerw SLAVE.
Przykad dania zapisu danych do bazy serwera LDAP1 przedstawia rysunek 3.6.
Serwer LDAP1, ktry jest serwerem SLAVE, informuje klienta, e takie zmiany mona
wprowadza jedynie na serwerze MASTER, zwracajc odpowiedni referencj (2).
Klient formuuje nowe danie, wysyajc je tym razem pod waciwy adres (3) i uzyskuje potwierdzenie (4). Zmiany wprowadzone w bazie danych serwera MASTER s
zapisywane do dziennika replikacji (5) i od tego momentu s dostpne dla programu
slurpd (6), ktry propaguje je dalej (7) do serwera SLAVE (lub wielu serwerw SLAVE).
Przedstawiony scenariusz opisuje prb zapisu na serwerze SLAVE. W przypadku
prby odczytu scenariusz zakoczyby si w punkcie 2. po zwrceniu odpowiedzi przez
serwer SLAVE.
Dalsze informacje na temat konfigurowania replikacji s opisane w punkcie Replikacja.

Konfiguracja mieszana
Konfiguracja mieszana stanowi poczenie konfiguracji z serwerami referencyjnymi
oraz konfiguracji z replikacj typu MASTER-SLAVE i jest podstaw budowy duych
systemw.

Plik slapd.conf
Konfiguracja serwera LDAP jest oparta na pliku slapd.conf. Plik ten decyduje o wszystkich parametrach pracy serwera (patrz: tabela 3.4).
Przykad minimalnej konfiguracji (plik slapd.conf) przedstawia listing 3.2.

256 (26-09-06)

D:\Dane\Druk\Bazy danych SQL. Teoria i praktyka\09_druk\03.doc

Rozdzia 3. LDAP hierarchiczna baza danych

257

Listing 3.2. Przykadowy plik slapd.conf


include
./schema/core.schema
include
./schema/my.schema
#definicja bazy
database ldbm
suffix
"miasto=krakow,kraj=pl"
rootdn
"identyfikator=manager,miasto=krakow,kraj=pl"
rootpw
manager
directory
./data
access to * by * write

Tabela 3.4. Lista i znaczenie parametrw konfiguracyjnych pliku slapd.conf


Parametr

Znaczenie

Uycie

access

Okrela prawa dostpu do wzw


i atrybutw.

Patrz: punkt Prawa dostpu


do serwera.

defaultaccess

Domylny tryb dostpu, jeli tryb


dostpu nie by okrelony
w parametrze access.

defaultaccess none brak dostpu.

include

Wczenie pliku (plik powinien


posiada taki sam format jak
slapd.conf).

defaultaccess read domylny

tryb odczytu.
include core.schema wczenie pliku

schematu.

loglevel

Poziom logowania.

loglevel 255 szczegowy poziom


logowania informacji.

referral

Referencja zwracana klientowi


w przypadku da dotyczcych
wzw nieobsugiwanych
przez serwer.

referral myserver.com

sizelimit

Maksymalna ilo elementw


zwrcona przez serwer w jednej
operacji odczytu.

sizelimit 100

timelimit

Maksymalny czas (w sekundach)


na obsug dania klienta.

timelimit 300

database

Wybrana baza danych dla serwera


LDAP.
Wszystkie parametry pojawiajce
si do nastpnego uycia parametru
database dotycz tej bazy danych
(patrz: przykad slapd.conf
w punkcie Interfejs).

database ldbm
database shell
database passwd

readonly

Wcza lub wycza tryb read-only.

readonly on

replica

Informacja o powizanym serwerze


replikacji SLAVE.
Patrz: punkt Replikacja.

replica uri=ldap://myserver:389
binddn="identyfikator=manager,
miasto=krakow,kraj=pl" bindmethod=
simple credentials=manager

replogfile

Nazwa pliku dziennika logowania


zmian w bazie danych, plik ten jest
uywany w procesie replikacji
przez program slurpd.

replogfile ./logs/master-ldap.replog

D:\Dane\Druk\Bazy danych SQL. Teoria i praktyka\09_druk\03.doc

(26-09-06)

257

258

Bazy danych SQL. Teoria i praktyka

Tabela 3.4. Lista i znaczenie parametrw konfiguracyjnych pliku slapd.conf (cig dalszy)
Znaczenie

Uycie

rootdn

Parametr

DN logowania do serwera,
(uywane w opcji -D narzdzi
takich jak ldapadd).

rootdn "identyfikator=manager,
miasto=krakow,kraj=pl"

rootpw

Haso logowania do serwera.

rootpw manager

suffix

Okrela wze podstawowy


dla danej bazy danych, wszystkie
zapytania kierowane do tego wza
lub podwzw bd dotyczyy bazy,
dla ktrej jest ustawiony suffix.

suffix "miasto=krakow,kraj=pl"

updatedn

Okrela DN uprawione
do wprowadzenia zmian do repliki
(SLAVE), powinno odpowiada
klauzuli binddn dyrektywy replica
dla serwera MASTER.
Opcja dostpna tylko dla SLAVE.

updatedn "identyfikator=manager,
miasto=krakow,kraj=pl"

updateref

Referencja do serwera MASTER.


Opcja dostpna tylko dla SLAVE.

updateref "myserver.net"

directory

Kartoteka dla bazy danych.

directory ./data

index

Definicje indeksw.
Dozwolone wartoci:
none brak indeksu,
eq wyszukiwanie w indeksie
bdzie oparte na porwnaniu
caych elementw,
sub wyszukiwanie
podstringw,
pres wyszukiwanie
przez (st=*), tzn. wszystkich
elementw.

index objectClass eq indeks

dla obiektu objectClass.

objectclass

Patrz: punkt Schemat.

attributetype

Patrz: punkt Schemat.

schemacheck

Wczenie lub wyczenie


sprawdzenia pliku schematu.

schemacheck on

TLSCipherSuite

Akceptowalny sposb szyfrowania.

TLSCipherSuite HIGH:MEDIUM:+SSLv2

TLSCACertificateFile

Plik z certyfikatem.

TLSCACertificateFile cacert.pem

TLSCACertificatePath

Kartoteka zawierajca
certyfikaty CA.

TLSCACertificatePath ./cert

TLSCertificateFile

Plik z certyfikatem serwera.

TLSCertificateFile servercrt.pem

TLSCertificateKeyFile Plik klucza prywatnego serwera.

TLSCertificateKeyFile serverkey.pem

TLSVerifyClient

TLSVerifyClient demand

258 (26-09-06)

Poziom uwierzytelnienia klienta:


never, allow, try, demand, hard.

D:\Dane\Druk\Bazy danych SQL. Teoria i praktyka\09_druk\03.doc

Rozdzia 3. LDAP hierarchiczna baza danych

259

Instalacja ksiki adresowej LDAP


Instalacja ksiki adresowej LDAP w programie Microsoft Outlook Express przedstawia si nastpujco:
1. W menu Narzdzia naley wybra Konta.
2. W oknie Konta internetowe po wybraniu Dodaj wybieramy Usuga katalogowa.
3. W oknie Kreator pocze internetowych naley poda URL serwera LDAP,

np. ldap.myserver.pl lub localhost, jeli nasz serwer uruchomilimy na lokalnym


komputerze.
4. Ustalamy, czy musimy logowa si do serwera.
5. Jeli wybralimy opcj logowania do serwera, powinnimy poda DN

logowania i haso, np.:


Nazwa konta: identyfikator=manager,miasto=krakow,kraj=pl
Haso: manager

6. Decydujemy, czy program MS Outlook Express powinien sprawdza

wpisywane adresy e-mail w bazie danych LDAP.


7. W oknie Konta internetowe w zakadce Usuga katalogowa wybieramy z listy

skonfigurowany przez nas serwer i naciskamy przycisk Waciwoci.


8. Wybieramy zakadk Zaawansowane i sprawdzamy, czy ustawienie portu

jest waciwe (jest to szczeglnie wane, jeli serwera nie uruchomilimy


na standardowym numerze portu) i jeli jest niewaciwe, poprawiamy je.
Wprowadzamy rwnie poprawnie Baz wyszukiwania, czyli wze stanowicy
podstaw przeszukiwania drzewa LDAP.
9. Naciskamy OK.

Aby skorzysta z tak skonfigurowanej ksiki adresowej:


1. Otwieramy ksik adresow, naciskajc przycisk: Adresy.
2. W menu Edycja wybieramy Znajd osoby.
3. Na licie Szukaj w wybieramy skonfigurowany przez nas serwer LDAP.
4. Wprowadzamy np. nazw uytkownika w polu Nazwa (moe by *)

i naciskamy OK.

Konfigurowanie bazy SQL jako backendu


Serwer LDAP dysponuje du liczb moliwoci, jeli chodzi o wybr bazy danych
uywanej do przechowywania danych (tzw. backends): bdb, hdb, ldbm. W roli bazy
danych (backendu) mona uy shell, aby uzyska dostp do wybranych skryptw powoki, lub passwd, aby uzyska dostp do pliku passwd. Niekoniecznie zatem w roli

D:\Dane\Druk\Bazy danych SQL. Teoria i praktyka\09_druk\03.doc

(26-09-06)

259

You might also like