background image

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

background image

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 

background image

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()

background image

Antoni Dydejczyk, Bazy danych, wykład 8 

WFiIS, Katedra Informatyki Stosowanej, 2007 

Poprzednie wyk

Poprzednie wyk

ł

ł

ady 

ady 

-

-

SQL

SQL

DDL

DML
DML

background image

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.

background image

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.

background image

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ą Ŝ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.

background image

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;

background image

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.

background image

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.

background image

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.

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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 

background image

Antoni Dydejczyk, Bazy danych, wykład 8 

WFiIS, Katedra Informatyki Stosowanej, 2007 

Procedury sk

Procedury sk

ł

ł

adowane, wyzwalacze 

adowane, wyzwalacze 

background image

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 

background image

Antoni Dydejczyk, Bazy danych, wykład 8 

WFiIS, Katedra Informatyki Stosowanej, 2007 

Procedury sk

Procedury sk

ł

ł

adowane, wyzwalacze 

adowane, wyzwalacze 

background image

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

background image

Antoni Dydejczyk, Bazy danych, wykład 8 

WFiIS, Katedra Informatyki Stosowanej, 2007 

Procedury sk

Procedury sk

ł

ł

adowane, wyzwalacze 

adowane, wyzwalacze 

background image

Antoni Dydejczyk, Bazy danych, wykład 8 

WFiIS, Katedra Informatyki Stosowanej, 2007 

Procedury sk

Procedury sk

ł

ł

adowane, wyzwalacze 

adowane, wyzwalacze 

background image

Antoni Dydejczyk, Bazy danych, wykład 8 

WFiIS, Katedra Informatyki Stosowanej, 2007 

Procedury sk

Procedury sk

ł

ł

adowane, wyzwalacze 

adowane, wyzwalacze 

background image

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’ ;

background image

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

background image

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

background image

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)

background image

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

background image

Antoni Dydejczyk, Bazy danych, wykład 8 

WFiIS, Katedra Informatyki Stosowanej, 2007 

Transakcje 

Transakcje 

(1)

(1)

background image

Antoni Dydejczyk, Bazy danych, wykład 8 

WFiIS, Katedra Informatyki Stosowanej, 2007 

Transakcje 

Transakcje 

(2)

(2)

background image

Antoni Dydejczyk, Bazy danych, wykład 8 

WFiIS, Katedra Informatyki Stosowanej, 2007 

Transakcje 

Transakcje 

(3)

(3)

Zatwierdzenie transakcji

background image

Antoni Dydejczyk, Bazy danych, wykład 8 

WFiIS, Katedra Informatyki Stosowanej, 2007 

Transakcje 

Transakcje 

(4)

(4)

background image

Antoni Dydejczyk, Bazy danych, wykład 8 

WFiIS, Katedra Informatyki Stosowanej, 2007 

Transakcje 

Transakcje 

(5)

(5)

Anulowanie transakcji

background image

Antoni Dydejczyk, Bazy danych, wykład 8 

WFiIS, Katedra Informatyki Stosowanej, 2007 

Transakcje 

Transakcje 

(6)

(6)

background image

Antoni Dydejczyk, Bazy danych, wykład 8 

WFiIS, Katedra Informatyki Stosowanej, 2007 

Transakcje 

Transakcje 

(7)

(7)

background image

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

background image

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ąć

background image

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

background image

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;

background image

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.

background image

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 ...

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

Antoni Dydejczyk, Bazy danych, wykład 8 

WFiIS, Katedra Informatyki Stosowanej, 2007 

Bezpiecze

Bezpiecze

ń

ń

stwo baz danych

stwo baz danych

background image

Antoni Dydejczyk, Bazy danych, wykład 8 

WFiIS, Katedra Informatyki Stosowanej, 2007 

Bezpiecze

Bezpiecze

ń

ń

stwo baz danych

stwo baz danych

background image

Antoni Dydejczyk, Bazy danych, wykład 8 

WFiIS, Katedra Informatyki Stosowanej, 2007 

Bezpiecze

Bezpiecze

ń

ń

stwo baz danych

stwo baz danych

background image

Antoni Dydejczyk, Bazy danych, wykład 8 

WFiIS, Katedra Informatyki Stosowanej, 2007 

Bezpiecze

Bezpiecze

ń

ń

stwo baz danych

stwo baz danych

background image

Antoni Dydejczyk, Bazy danych, wykład 8 

WFiIS, Katedra Informatyki Stosowanej, 2007 

Bezpiecze

Bezpiecze

ń

ń

stwo baz danych

stwo baz danych

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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 

background image

Antoni Dydejczyk, Bazy danych, wykład 8 

WFiIS, Katedra Informatyki Stosowanej, 2007 

Pytania ...

Pytania ...