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