Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
SQL
SQL
–
–
j
j
ę
ę
zyk DCL,
zyk DCL,
procedury sk
procedury sk
ł
ł
adowane i wyzwalacze
adowane i wyzwalacze
Wykład 8
27.11.2007
Antoni Dydejczyk
http://www.ftj.agh.edu.pl/~antek
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Plan wyk
Plan wyk
ł
ł
adu
adu
Procedury składowane w bazach danych i ich zadania
Wyzwalacze - procedury uruchamiane w zaleŜności od
zdarzeń
Transakcje w systemie baz danych z poziomu interfejsu
języka SQL
Mechanizmy bezpieczeństwa w języku SQL
polecenia GRANT i REVOKE
Tworzenie uŜytkowników i grup uŜytkowników w systemach
baz danych
Reguły przydzielania uprawnień uŜytkownikom i grupom
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Poprzednie wyk
Poprzednie wyk
ł
ł
ady
ady
Polecenia DDL (Data Definition Language)
CREATE
ALTER
DROP
Polecenia DML (Data Manipulation Language)
SELECT
INSERT, UPDATE, DELETE
Łączenie tabel
Podzapytania
Perspektywy
Funkcje agregujące
COUNT(), SUM(), MIN(), MAX(), AVG()
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Poprzednie wyk
Poprzednie wyk
ł
ł
ady
ady
-
-
SQL
SQL
DDL
DML
DML
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
SQL:1999
SQL:1999
Rozszerzenie języka SQL o następujące funkcjonalności
procedury składowane
wyzwalacze
Część 4 specyfikacji języka SQL
SQL/PSM (Persistent Stored Modules)
Proceduralne rozszerzenie języka SQL.
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Procedury sk
Procedury sk
ł
ł
adowane
adowane
Czym są procedury składowane ?
Procedury składowane są to programy przechowywane
razem z bazą danych. UmoŜliwiają bezpośrednie
manipulowanie danymi w bazie danych bez jakiejkolwiek
interwencji klienta, bez generowania ruchu sieciowego.
Składowane procedury wykonują się całkowicie na serwerze.
KaŜda składowana procedura jest samodzielnym modułem
kodu, który moŜe być wykonany z dowolnej aplikacji klienta,
innej procedury składowanej lub wyzwalacza.
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Wyzwalacz
Wyzwalacz
Czym jest wyzwalacz ?
Wyzwalacz podobny jest do procedury, ale
posiada jedną róŜnicę - jest uruchamiany automatycznie
w momencie zachodzenia określonych typów zdarzeń.
Zdarzenia te mogą dotyczyć całej tablicy lub wiersza
danych. Na przykład moŜna zdefiniować wyzwalacz, który
jest wywoływany po uaktualnieniu wiersza.
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Zadania procedur sk
Zadania procedur sk
ł
ł
adowanych i wyzwalaczy
adowanych i wyzwalaczy
• Pozwalają serwerowi wykonywać złoŜone operacje na bazie
danych bez angaŜowania oprogramowania klienckiego;
• Mogą być dzielone przez wszystkich klientów mających
dostęp do bazy danych, nie potrzeba programować tej samej
logiki w kaŜdej aplikacji klienta;
• Zmniejszają ruch sieciowy poprzez odciąŜenie środowisk
aplikacji i przeniesienie przetwarzania na serwer;
• Składowane procedury umoŜliwiają podział złoŜonych
zadań na mniejsze, bardziej logiczne moduły;
• Składowane procedury są szczególnie uŜyteczne do
wykonywania złoŜonych, okresowych czynności;
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Zadania procedur sk
Zadania procedur sk
ł
ł
adowanych i wyzwalaczy
adowanych i wyzwalaczy
• Procedury zapewniają lepszą współbieŜność pomiędzy
klientem a serwerem;
• Wyzwalacze są podstawowym środkiem do utrzymywania
spójności bazy danych;
• Wyzwalacze są wykorzystywane do generowania wartości
klucza pierwotnego przy wstawianiu nowego rekordu;
• Wyzwalacze mogą być wykorzystane do zapisywania
informacji o statusie tablicy do innej tablicy;
• Procedury składowane oferują podniesienie bezpieczeństwa.
Mogą wykonywać operacje na tablicach, nawet jeŜeli
uŜytkownik nie posiada odpowiednich uprawnień do danej
operacji na tablicy.
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Kiedy u
Kiedy u
Ŝ
Ŝ
ywamy procedur sk
ywamy procedur sk
ł
ł
adowanych ?
adowanych ?
• JeŜeli operacja moŜe być wykonana w całości na
serwerze, bez wymogu pozyskania informacji od
uŜytkownika podczas trwania operacji;
• JeŜeli operacja wymaga przetworzenia duŜej ilości
wierszy, co mogłoby być kosztowne w kategoriach ruchu
sieciowego;
• JeŜeli operacja musi być wykonywana okresowo lub
często;
• Jeśli operacja jest wykonywana przez wiele róŜnych
modułów lub procesów wewnątrz aplikacji lub przez
róŜne aplikacje;
• Jeśli logika często się zmienia.
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Kiedy u
Kiedy u
Ŝ
Ŝ
ywamy wyzwalaczy ?
ywamy wyzwalaczy ?
• UŜycie wyzwalacza przed operacjami - wprowadzanie,
uaktualnianie, usuwanie:
– wyzwalacz „przed” moŜe kontrolować spójność, poprawność i
kompletność wprowadzanych lub modyfikowanych danych;
– wyzwalacz „przed” moŜe wypełniać kolumny;
– wyzwalacz „przed” przy zapytaniu DELETE moŜe zwracać błąd
jeŜeli istnieją powiązane rekordy, lub usunąć powiązane wiersze
przed usunięciem wierszy w tabeli nadrzędnej;
• UŜycie wyzwalacza po uruchomieniu w/w operacji:
– wyzwalacz „po” moŜe być wykorzystany do rejestrowania zmian
wiersza;
– moŜe być wykorzystany do uaktualnienia informacji w
powiązanych tabelach.
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Przetwarzanie danych
Przetwarzanie danych
SELECT ...
INSERT ...
INSERT ...
UPDATE ...
SELECT ...
Przetwarzanie
Przetwarzanie
Przetwarzanie
Przetwarzanie
Przetwarzanie
Aplikacja klienta
Serwer
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Przetwarzanie danych
Przetwarzanie danych
EXECUTE
PROCEDURE
PROC (parm_in,
parm_out) ...
Aplikacja klienta
Serwer
Przetwarzanie
Przetwarzanie
Przetwarzanie
Przetwarzanie
INSERT ...
SELECT ...
UPDATE ...
SELECT ...
Baza danych
Procedura PROC
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Procedury sk
Procedury sk
ł
ł
adowane
adowane
CREATE PROCEDURE Nazwa_procedury
[ lista parametrów ]
RETURNS [ lista parametrów zwrotnych ]
AS
[ deklaracje zmiennych lokalnych ]
BEGIN
[ ciało procedury ]
END
[ lista parametrów ] =
( Nazwa_parametru_1 Typ_parametru,
Nazwa_parametru_2 Typ_parametru,
Nazwa_parametru_3 Typ_parametru )
[ deklaracja zmienny lokalnych ] = Zmienna_lokalna_1 Typ_zmiennej
Zmienna_lokalna_2 Typ_zmiennej
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Wyzwalacz
Wyzwalacz
CREATE TRIGGER nazwa FOR tabela
[ BEFORE | AFTER ]
[ DELETE | INSERT | UPDATE ]
AS
[ deklaracje zmiennych lokalnych ]
BEGIN
[ ciało procedury ]
END
BEFORE INSERT
- przed wstawieniem nowego rekordu
BEFORE UPDATE
- przed aktualizacją rekordu
BEFORE DELETE
- przed usunięciem rekordu
AFTER INSERT
- po wstawieniu nowego rekordu
AFTER UPDATE
- po aktualizacji rekordu
AFTER DELETE
- po usunięciu rekordu
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Procedury sk
Procedury sk
ł
ł
adowane, wyzwalacze
adowane, wyzwalacze
1. Deklarowanie zmiennych lokalnych
DECLARE VARIABLE v_kwota integer ;
2. Bloki programowe
BEGIN
...
END
3. WyraŜenia warunkowe
IF ... ELSE ...
4. WyraŜenia tworzące pętle
WHILE warunek
wyraŜenie
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Przykład:
CREATE PROCEDURE p
RETURN (r INTEGER)
AS
BEGIN
r=0;
WHILE (r<5) DO
BEGIN
r=r+1;
SUSPEND;
IF (r=3) THEN
EXIT;
END
END
Procedury sk
Procedury sk
ł
ł
adowane, wyzwalacze
adowane, wyzwalacze
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Procedury sk
Procedury sk
ł
ł
adowane, wyzwalacze
adowane, wyzwalacze
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Przykład:
create procedure pnazwisko
returns (r_nazwisko varchar(30), r_miasto varchar(30))
begin
for select o.nazwisko,a.miasto
from osoba o join adres a on o.id = a.id
into :r_nazwisko,:r_miasto
do
suspend;
end
Procedury sk
Procedury sk
ł
ł
adowane, wyzwalacze
adowane, wyzwalacze
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Procedury sk
Procedury sk
ł
ł
adowane, wyzwalacze
adowane, wyzwalacze
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Procedury sk
Procedury sk
ł
ł
adowane, wyzwalacze
adowane, wyzwalacze
Przykład:
CREATE TRIGGER "SET_OSOBA" FOR "OSOBA"
ACTIVE BEFORE INSERT
AS
BEGIN
INSERT INTO opis_osoba (id) VALUES (new.id);
END
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Procedury sk
Procedury sk
ł
ł
adowane, wyzwalacze
adowane, wyzwalacze
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Procedury sk
Procedury sk
ł
ł
adowane, wyzwalacze
adowane, wyzwalacze
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Procedury sk
Procedury sk
ł
ł
adowane, wyzwalacze
adowane, wyzwalacze
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Procedury sk
Procedury sk
ł
ł
adowane, wyzwalacze
adowane, wyzwalacze
-
-
PostreSQL
PostreSQL
System zarządzania bazą danych PostgreSQL umoŜliwia wsparcie przetwarzania
w bazie w oparciu o róŜne języki programowania proceduralnego:
PL/pgSQL, PL/Tcl, PL/Perl, moŜliwe procedury skompilowane .obj
Przykład definicji w bazie PostgreSQL
CREATE FUNCTION nazwa ( [typ_funkcji [, ...] ] )
RETURNS typ_wyniku
AS definicja
LANGUAGE ‘nazwa_jezyka’
Np.
CREATE FUNCTION add_one(int4) AS ‘
BEGIN
RETURN $1 + 1
END;
‘ LANGUAGE ‘plpgsql’ ;
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
# CREATE FUNCTION add_one (int4) RETURNS int4 AS ‘
# BEGIN RETURN $1+1; END; ‘ LANGUAGE ‘plpgsql’;
CREATE
# SELECT add_one(2) AS answer ;
answer
------------
3
#
Wyświetlenie listingu funkcji – tabela pg_proc
# SELECT prosrc FROM pg_proc WHERE procname=‘add_one’ ;
prosrc
--------------------------------
begin ....
Procedury sk
Procedury sk
ł
ł
adowane, wyzwalacze
adowane, wyzwalacze
-
-
PostreSQL
PostreSQL
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Wyzwalacze w bazie PostgreSQL
CREATE TRIGGER nazwa { BEFORE | AFTER }
{ zdarzenie [ OR ... ] }
ON table FOR EACH { ROW | STATEMENT }
EXECUTE PROCEDURE funkcja(argumenty)
Np.
CREATE TRIGGER trig_reorder
AFTER INSERT OR UPDATE ON stock
FOR EACH ROW EXECUTE PROCEDURE reorder_trigger(3);
Procedury sk
Procedury sk
ł
ł
adowane, wyzwalacze
adowane, wyzwalacze
-
-
PostreSQL
PostreSQL
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Transakcje
Transakcje
Transakcja - jest to wykonanie pewnego programu, który odbiera od
uŜytkownika Ŝądanie dokonania określonej operacji, realizuje tę
operację i zwraca wyniki uŜytkownikowi.
KaŜda transakcja jest niezaleŜnym zbiorem operacji, które zostaną
wykonane w całości lub wcale.
KaŜda transakcja jest izolowana od innych transakcji
zapoczątkowanych przez innych uŜytkowników.
Własności transakcji (ACID)
•
atomowość (Atomicity)
•
spójność (Consistency)
•
izolacja (Isolation)
•
trwałość (Durability)
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Transakcje
Transakcje
Transakcję rozpoczyna polecenie:
BEGIN WORK, START TRANSACTION
Transakcję kończy polecenie:
COMMIT WORK, COMMIT TRANSACTION
W przypadku błędu transakcję anuluje się poleceniem:
ROLLBACK
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Transakcje
Transakcje
(1)
(1)
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Transakcje
Transakcje
(2)
(2)
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Transakcje
Transakcje
(3)
(3)
Zatwierdzenie transakcji
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Transakcje
Transakcje
(4)
(4)
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Transakcje
Transakcje
(5)
(5)
Anulowanie transakcji
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Transakcje
Transakcje
(6)
(6)
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Transakcje
Transakcje
(7)
(7)
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Transakcje
Transakcje
(
(
przyk
przyk
ł
ł
ad SQL)
ad SQL)
Transakcja obejmująca kilka poleceń SQL
BEGIN WORK
INSERT INTO TABLE A1 …
INSERT INTO TABLE A2 …
INSERT INTO TABLE A3 …
INSERT INTO TABLE LOG …
COMMIT
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Kursory
Kursory
Kursor - w systemach zarządzania bazą danych jest to tymczasowa
struktura słuŜąca do pobierania wyniku zapytania SQL. Kursor
umoŜliwia pobieranie rekordów sekwencyjnie, po jednym lub więcej
na raz, a takŜe przemieszczanie się po wynikach zapytania.
Kursor moŜe być zdefiniowany i działać po stronie serwera baz
danych, jak i po stronie klienta. Ten drugi typ kursora jest rodzajem
iteratora umoŜliwiającego poruszanie się po poszczególnych rekordach
zwróconych przez serwer klientowi.
Operacje wykonywane na kursorze
Zadeklarować
Otworzyć
Pobrać dane, przemieszczać się po kolejnych wierszach
Zamknąć
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Kursory
Kursory
Deklaracja kursora
DECLARE nazwa_kursora [BINARY] [INTENSIVE] [SCROLL]
CURSOR FOR zapytanie
[ FOR { READ ONLY | UPDATE [ OF COLUMN [, ... ] ] } ]
Pobieranie wierszy z kursora
FETCH [ FORWARD | BACKWARD | RELATIVE ]
[ # | ALL | NEXT | PRIOR ]
{ IN | FROM } nazwa_kursora
Przesuwanie pozycji kursora
MOVE [ FORWARD | BACKWARD | RELATIVE ]
[ # | ALL | NEXT | PRIOR ]
{ IN | FROM } nazwa_kursora
Zamykanie kursora
CLOSE nazwa_kusora
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Kursory
Kursory
MoŜliwości kursora według standardu SQL
WraŜliwość kursora po pobraniu danych na zmiany w danych
oryginalnych wykonane przez inne wątki
DECLARE nazwa kursora
INSENSITIVE
CURSOR FOR
MoŜliwość przewijania danych zawartych w kursorze w przód i w tył
(polecenia
FETCH NEXT, FETCH PRIOR, FETCH LAST, FETCH FIRST,
FETCH RELATIVE liczba, FETCH ABSOLUTE liczba)
DECLARE nazwa kursora
SCROLL
CURSOR FOR
. . .
MoŜliwość zmian danych w tabeli będącej źródłem dla kursora
UPDATE tabela
SET . . . WHERE CURRENT OF CURSOR nazwa kursora;
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Bezpiecze
Bezpiecze
ń
ń
stwo baz danych
stwo baz danych
Model SQL uŜywa warstwowego modelu bezpieczeństwa,
który udostępnia administratorom zróŜnicowane poziomy
kontroli dostępu do zasobów bazy danych.
Na model bezpieczeństwa składają się:
• przywileje
• uŜytkownicy
• zasoby.
UŜytkownikom moŜna nadać odpowiednie przywileje
pozwalające im wykonać szereg róŜnych zadań na zasobach.
Przykładowo uŜytkownik moŜe dostać prawo do operacji
SELECT bez moŜliwości wykonania poleceń typu INSERT,
DELETE, czy UPDATE.
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Bezpiecze
Bezpiecze
ń
ń
stwo baz danych
stwo baz danych
Bezpieczeństwo systemu baz danych wymaga opracowania
zasad, reguł i planu przyznawania praw dostępu .
Przykład tworzenia systemu bezpieczeństwa.
planowanie
utworzenie ról - CREATE ROLE
przypisanie uprawnień do ról - GRANT ...
tworzenie uŜytkowników
przypisanie uŜytkownikowi ról - GRANT ...
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Polityka bezpiecze
Polityka bezpiecze
ń
ń
stwa
stwa
* * * *
* - - -
o - - -
* * * *
* * * *
Sprzedawc
a
* - - -
* * * *
o - - -
* - - -
* - - -
Mechanik
* - - -
* * * *
* * * *
* - - -
* - - -
Kierownik
* - - -
* - - -
o - - -
* - - -
* - - -
Kasjer
S D I U
S D I U
S D I U
S D I U
S D I U
Stanowisk
o
WypoŜyczenia
Samochody
Pracownicy
Miejsca
Klienci
Tabele
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Bezpiecze
Bezpiecze
ń
ń
stwo baz danych
stwo baz danych
Przywileje nadawane w bazach danych.
WyraŜenia
Przywileje
ALTER
Pozwala wydawać polecenia ALTER
REFERENCES
Pozwala na tworzenie kluczy obcych
INDEX
Pozwala zakładać indeksy
SELECT
Pozwala wykonywać polecenia SELECT
INSERT
Pozwala wstawiać rekordy do tabeli
UPDATE
Pozwala modyfikować rekordy tabeli
DELETE
Pozwala usuwać rekordy z tabeli
ALL
Pozwala na wszystkie operacje na danych
EXECUTE
Pozwala na wykonywanie procedur składowanych
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Bezpiecze
Bezpiecze
ń
ń
stwo baz danych
stwo baz danych
Składnia polecenia GRANT
GRANT przywilej ON obiekt TO uŜytkownik
Składnia polecenia REVOKE
REVOKE przywilej ON obiekt FROM uŜytkownik
Nadawanie uŜytkownikom uprawnienia GRANT
GRANT przywilej ON obiekt TO uŜytkownik WITH GRANT OPTION
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Role - pakiet uprawnień, warstwa abstrakcyjna stworzona pomiędzy
uŜytkownikiem a obiektami bazy danych. Rolom moŜna przypisać dowolną
liczbę uprawnień, które będą obowiązywać kaŜdego przypisanego do niej
uŜytkownika.
Składnia polecenia tworzącego i usuwającego role.
CREATE ROLE nazwa_roli
GRANT przywilej ON obiekt TO nazwa_roli
GRANT nazwa_roli TO uŜytkownik
DROP ROLE nazwa_roli
Bezpiecze
Bezpiecze
ń
ń
stwo baz danych
stwo baz danych
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
CREATE ROLE Kasjer;
GRANT SELECT ON Klienci TO Kasjer;
GRANT SELECT ON Miejsca TO Kasjer;
GRANT SELECT ON V_Pracownicy TO Kasjer;
GRANT SELECT ON Samochody TO Kasjer;
GRANT SELECT ON Wypozyczenia TO Kasjer;
CREATE ROLE Kierownik;
GRANT SELECT ON Klienci TO Kierownik;
GRANT SELECT ON Miejsca TO Kierownik;
GRANT ALL ON Pracownicy TO Kierownik;
GRANT ALL ON Samochody TO Kierownik;
GRANT SELECT ON Wypozyczenia TO Kierownik;
Bezpiecze
Bezpiecze
ń
ń
stwo baz danych
stwo baz danych
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
UŜytkownik w bazie danych
Tworzenie uŜytkowników
- polecenie CREATE USER
- z poziomu aplikacji do obsługi bazy danych
( w bazie InterBase - aplikacja IBConsole )
- w systemie PostgreSQL:
z poziomu poleceń SQL
z poziomu systemu operacyjnego
Bezpiecze
Bezpiecze
ń
ń
stwo baz danych
stwo baz danych
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Bezpiecze
Bezpiecze
ń
ń
stwo baz danych
stwo baz danych
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Bezpiecze
Bezpiecze
ń
ń
stwo baz danych
stwo baz danych
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Bezpiecze
Bezpiecze
ń
ń
stwo baz danych
stwo baz danych
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Bezpiecze
Bezpiecze
ń
ń
stwo baz danych
stwo baz danych
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Bezpiecze
Bezpiecze
ń
ń
stwo baz danych
stwo baz danych
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Tworzenie nowego uŜytkownika:
CREATE USER nazwa_uzytkownika
[ WITH
[SYSID uid ]
[PASSWORD ‘haslo’
[CREATEDB | NOCREATEDB ]
[CREATEUSER | NOCREATEUSER ]
[IN GROUP nazwa_grupy [, ....] ]
[VALID UNTIL ‘czas waznosci] ]
Usuwanie uŜytkownika
DROP USER [opcje,..] nazwa_uzytkownika
Zmiana właściwości uŜytkownika
ALTER USER nazwa_uzytkownika
[ WITH PASSWORD ‘haslo’]
[ CREATEDB | NOCREATEDB ][ CREATEUSER | NOCREATEUSER ]
[ VALID UNTIL ‘czas waznosci’ ]
Bezpiecze
Bezpiecze
ń
ń
stwo baz danych
stwo baz danych
-
-
PostgreSQL
PostgreSQL
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Tworzenie grupy uŜytkowników:
CREATE GROUP nazwa_grupy
[ WITH
[SYSID gid ]
[USER nazwa_uzytkownika, [ ,...] ] ]
Dodawanie (usuwanie) uŜytkownika do (z) grupy
ALTER GROUP nazwa ADD USER nazwa_uzytkownika [, .... ]
ALTER GROUP nazwa DROP USER nazwa_uzytkownika [, ... ]
Usuwanie grupy uŜytkowników
DROP GROUP nazwa_grupy
Bezpiecze
Bezpiecze
ń
ń
stwo baz danych
stwo baz danych
-
-
PostgreSQL
PostgreSQL
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Nadawanie uprawnień
GRANT uprawnienie [, ....] ON obiekt [, ... ]
TO { PUBLIC | GROUP nazwa_grupy | nazwa_uzytkownika }
MoŜliwe uprawnienia
SELECT
- odczytywanie wierszy
INSERT
- tworzenie nowych wierszy
DELETE
- usuwanie wierszy
UPDATE
- aktualizacja istniejących wierszy
RULE
- tworzenie reguł dla tabeli lub perspektywy
ALL
- daje wszystkie uprawnienia
Odbieranie uprawnień
REVOKE uprawnienie [, ... ]
ON obiekt [, ... ]
FROM { PUBLIC | GROUP nazwa_grupy | nazwa_uzytkownika }
Bezpiecze
Bezpiecze
ń
ń
stwo baz danych
stwo baz danych
-
-
PostgreSQL
PostgreSQL
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Pliki i tabele systemowe:
pg_hba.conf -
plik tekstowy, zawierający konfigurację systemu
uwierzytelnienia hostów PostgreSQL
pg_user -
tabela systemowa zawierająca uŜytkowników
pg_shadow -
tabela systemowa zawierająca dane
uŜytkowników z hasłami
Bezpiecze
Bezpiecze
ń
ń
stwo baz danych
stwo baz danych
-
-
PostgreSQL
PostgreSQL
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Bezpiecze
Bezpiecze
ń
ń
stwo w bazie danych
stwo w bazie danych
–
–
MS SQL
MS SQL
Permission
Validation
Udostępnia dostęp
do bazy danych;
Autoryzacja
Login
Udostępnia dostęp do
SQL Server;
Uwierzytelnienie
Dwa poziomy zabezpieczenia dostępu do serwera SQL.
Pierwszy :
Login – UserID, password
Drugi:
Permission Validation – User, Group, Role
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Bezpiecze
Bezpiecze
ń
ń
stwo w bazie danych
stwo w bazie danych
–
–
IBM DB2
IBM DB2
Antoni Dydejczyk, Bazy danych, wykład 8
WFiIS, Katedra Informatyki Stosowanej, 2007
Pytania ...
Pytania ...