•
Użytkownik
– osoba lub aplikacja, która jest
uprawniona do dostępu do danych zgromadzonych w
bazie danych
•
Schemat
– zbiór logicznych struktur danych (tabel,
perspektyw, ograniczeń, indeksów, programów
składowanych, itd.) – każdy użytkownik ma przypisany
schemat, który należy rozumieć jako konto
użytkownika
– schemat jest własnością określonego użytkownika
– schemat posiada swoją nazwę – nazwa schematu jest
zgodna z nazwą użytkownika, który jest właścicielem
schematu
Schematy
Schematy i użytkownicy
Schemat
A
Schemat
B
BAZA DANYCH:
wypożyczalnia
SELECT *
FROM
B.samochody;
SELECT *
FROM
samochody;
SELECT *
FROM
samochody;
użytkownik
A
użytkownik
B
•
Uwierzytelnianie - weryfikacja tożsamości
użytkownika bazy danych
•
Metody realizacji uwierzytelnień:
–
uwierzytelnianie przez SZBD
– uwierzytelnianie przez system operacyjny
– uwierzytelnianie przez usługę sieciową
– uwierzytelnianie wielowarstwowe
Uwierzytelnianie użytkowników
•
Autoryzacja - proces weryfikacji uprawnień użytkownika
do wykonywania określonych operacji na bazie danych
•
Ograniczenia mogą dotyczyć:
–
obiektów i operacji
• system przywilejów
• role bazodanowe
–
wykorzystania zasobów systemowych bazy danych
• profile
Autoryzacja użytkowników
• Przywilej – prawo wykonywania przez
użytkownika określonej akcji w bazie
danych lub dostępu do określonego
obiektu
Rodzaje przywilejów:
– systemowe
– obiektowe
Przywileje
•
Prawa wykonania określonej akcji lub wykonania
określonej operacji na wskazanym typie obiektu w
schemacie bazy danych
Przykłady:
– CREATE SESSION
– CREATE TABLE
– CREATE ANY TABLE
– SELECT ANY TABLE
– INSERT ANY TABLE
– DROP ANY VIEW
Przywileje systemowe
GRANT <przywileje>
TO <użytkownicy> | PUBLIC
[WITH ADMIN OPTION];
Nadawanie przywilejów
systemowych
• Polecenie
GRANT
służy do nadawania użytkownikowi
przywilejów systemowych
• PUBLIC
służy do nadania przywilejów wszystkim użytkownikom
• WITH ADMIN OPTION
umożliwia użytkownikowi, który otrzymał
przywilej przekazania go dalej innym użytkownikom
REVOKE <przywileje>
FROM <użytkownicy> | PUBLIC;
Odbieranie przywilejów
systemowych
Przykład
GRANT CREATE SESSION, SELECT ANY TABLE TO B;
GRANT CREATE TABLE TO A;
REVOKE SELECT ANY TABLE FROM B;
•
Prawa wykonania określonej operacji na
wskazanym obiekcie w określonym schemacie
bazy danych
Przykłady:
– SELECT ON wypozyczenia
– ALTER ON samochody
– EXECUTE ON Wyszukaj_samochod
– REFERENCES ON samochody
Przywileje obiektowe
Przywileje obiektowe
Przywilej
Tabela
Perspektyw
a
Procedura/
funkcja/pakie
t
Sekwencj
a
ALTER
+
+
DELETE
+
+
EXECUTE
+
INDEX
+
INSERT
+
+
REFERENCE
S
+
+
SELECT
+
+
+
UPDATE
+
+
GRANT <przywileje> | ALL ON <obiekt>
TO <użytkownicy> | PUBLIC
[WITH GRANT OPTION];
Nadawanie przywilejów obiektowych
przywileje
INSERT, UPDATE i REFERENCES
mogą dotyczyć kolumn tabeli
REVOKE <przywileje> | ALL ON <obiekt>
FROM <użytkownicy> | PUBLIC
[CASCADE CONSTRAINTS];
Odebranie przywilejów obiektowych
GRANT SELECT ON klienci TO B;
GRANT UPDATE(marka, model) ON samochody TO A;
REVOKE DELETE ON klienci FROM B;
Przykład
Rola
– nazwany zbiór przywilejów
•
ułatwiają zarządzanie przywilejami
•
użytkownik może mieć wiele ról
•
rola może zostać przyznana wielu użytkownikom
Przykłady zastosowań
– role aplikacyjne – grupują przywileje potrzebne
do działania określonej aplikacji
– role użytkowników – tworzone dla grup
użytkowników, którzy mają takie same
przywileje
Role
Predefiniowane role w SZBD Oracle:
CONNECT, RESOURCE, DBA
Tworzenie roli:
– bez autoryzacji
– autoryzowanej przez SZBD
– autoryzowanej przez aplikację
Usunięcie roli
Role
CREATE ROLE <nazwa>;
CREATE ROLE <nazwa> IDENTIFIED BY
<hasło>;
CREATE ROLE <nazwa> IDENTIFIED USING <pakiet>;
DROP ROLE <nazwa>;
Nadawanie przywilejów roli:
Nadawanie roli użytkownikowi
Odbieranie przywilejów roli
Odbieranie roli użytkownikowi
Role
GRANT <przywileje> [ON <obiekt>] TO <role>;
GRANT <role> TO <użytkownicy> | <role> | PUBLIC
[WITH ADMIN OPTION];
REVOKE <
przywileje
> [ON <obiekt>] FROM <role>;
REVOKE <role> FROM <użytkownicy>|<role>
PUBLIC;
Zablokowanie/odblokowanie roli dla bieżącej sesji
Przykład
Role
SET ROLE [ <nazwa> [ IDENTIFIED BY <hasło> ]
| ALL [EXCEPT <nazwa>
| NONE ];
CREATE ROLE wypożyczający IDENTIFIED BY pass123;
GRANT SELECT, UPDATE, DELETE ON wypożyczenia TO
wypożyczający;
GRANT wypożyczający TO KOWALSKI;