Professional Documents
Culture Documents
Bazy Danych SQL. Teoria I Praktyka
Bazy Danych SQL. Teoria I Praktyka
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
Wydawnictwo Helion
ul. Kociuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
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
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 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).
(26-09-06)
245
246
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.
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)
247
Rysunek 3.3.
Obsuga
dania dostpu
do oddelegowanego
wza
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..
(26-09-06)
247
248
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)
249
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
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
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
cosine.schema
inetOrgPerson
manager
Manager:
cosine.schema
inetOrgPerson
pager
Pager:
cosine.schema
inetOrgPerson
(26-09-06)
249
250
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.
250 (26-09-06)
251
Stosowana do
Znaczenie
booleanMatch
EQUALITY
caseIgnoreMatch
EQUALITY
caseExactMatch
EQUALITY
distinguishedNameMatch
EQUALITY
porwnywanie wartoci DN
integerMatch
EQUALITY
numericStringMatch
EQUALITY
octetStringMatch
EQUALITY
objectIdentiferMatch
EQUALITY
porwnywanie OID-w
caseIgnoreOrderingMatch
ORDERING
caseExactOrderingMatch
ORDERING
integerOrderingMatch
ORDERING
numericStringOrderingMatch
ORDERING
octetStringOrderingStringMatch
ORDERING
octetStringSubstringsStringMatch
ORDERING
caseIgnoreSubstringsMatch
SUBSTR
caseExactSubstringsMatch
SUBSTR
numericStringSubstringsMatch
SUBSTR
tabela 3.3).
Przykad deklaracji:
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{30} okrela atrybut typu
(26-09-06)
251
252
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
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
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
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)
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
(26-09-06)
253
254
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.
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)
255
(26-09-06)
255
256
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)
257
Znaczenie
Uycie
access
defaultaccess
include
tryb odczytu.
include core.schema wczenie pliku
schematu.
loglevel
Poziom logowania.
referral
referral myserver.com
sizelimit
sizelimit 100
timelimit
timelimit 300
database
database ldbm
database shell
database passwd
readonly
readonly on
replica
replica uri=ldap://myserver:389
binddn="identyfikator=manager,
miasto=krakow,kraj=pl" bindmethod=
simple credentials=manager
replogfile
replogfile ./logs/master-ldap.replog
(26-09-06)
257
258
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
rootpw manager
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
updateref "myserver.net"
directory
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.
objectclass
attributetype
schemacheck
schemacheck on
TLSCipherSuite
TLSCipherSuite HIGH:MEDIUM:+SSLv2
TLSCACertificateFile
Plik z certyfikatem.
TLSCACertificateFile cacert.pem
TLSCACertificatePath
Kartoteka zawierajca
certyfikaty CA.
TLSCACertificatePath ./cert
TLSCertificateFile
TLSCertificateFile servercrt.pem
TLSCertificateKeyFile serverkey.pem
TLSVerifyClient
TLSVerifyClient demand
258 (26-09-06)
259
i naciskamy OK.
(26-09-06)
259