Bazy danych

Transkrypt

Bazy danych
2010-11-22
PLAN WYKŁADU
Bezpieczeństwo w języku SQL
Użytkownicy
 Uprawnienia
 Role


BAZY DANYCH
Wykład 8
dr inż. Agnieszka Bołtuć
OGRANICZENIA DOSTĘPU DO DANYCH

Ograniczenie danych z tabeli dla określonego
użytkownika lub ich grupy,

Ograniczenia co do możliwości modyfikowania
tabel,

PODSTAWOWE KWESTIE BEZPIECZEŃSTWA

użytkownicy – osoby lub programy podejmujące
działania na obiektach bazy danych, posiadają
uprawnienia przyznawane przez SZBD, użytkownik
jest właścicielem utworzonych przez siebie
obiektów,

obiekty – konkretne obiekty przetwarzane przez
użytkowników, początkowo tabele i perspektywy,
później pojedyncze kolumny, dziedziny i zbiory
znaków,

uprawnienia (przywileje) – umożliwiają
użytkownikom manipulowanie obiektami.
Ograniczenia dostępu do wybranych kolumn lub
wierszy.
1
2010-11-22
TWORZENIE KONT UŻYTKOWNIKÓW

Niektóre SZBD udostępniają rozszerzenia
standardu SQL pozwalające na tworzenie kont
użytkowników,
składnia MySQL
CREATE USER nazwa
[IDENTIFIED BY [PASSWORD] ‘password’]
GRANT

Autoryzuje użytkowników i role przed
umożliwieniem dostępu do obiektów danych i
pozwoli na ich używanie,
GRANT {lista_przywilejów | ALL} [ON obiekt]
TO {lista_użytkowników|PUBLIC}
[WITH GRANT OPTION];
ALTER USER nazwa …;
DROP USER nazwa;
GRANT - UPRAWNIENIA
GRANT – UPRAWNIENIA SYSTEMOWE
Uprawnienia (przywileje) które mogą być nadane
użytkownikom dzielone są na:
GRANT CREATE TABLE TO U1;


systemowe - prawo do wykonania operacji na
bazie danych, np.: połączenia, manipulacji danymi
czy obiektami, eksportu, etc.,
obiektowe - stosuje się do określonych obiektów
bazodanowych.
GRANT CREATE USER TO PUBLIC;
GRANT DROP ANY VIEW TO U1
WITH GRANT OPTION;
2
2010-11-22
GRANT – UPRAWNIENIA OBIEKTOWE
GRANT – UPRAWNIENIA OBIEKTOWE

Użytkownicy mogą otrzymać m.in. następujące
uprawnienia do obiektów: SELECT, INSERT,
UPDATE, DELETE, REFERENCES,
 REFERENCES umożliwia użycie tabel w więzach
lub kluczach obcych,
 Jeśli chcemy nadać wszystkie przywileje
charakterystyczne dla danego obiektu możemy
użyć słowa ALL,
 Uprawnienia INSERT, UPDATE i REFERENCES
mogą być nadawane dla konkretnej kolumny, jeśli
brak kolumny dotyczy wszystkich,

GRANT – UPRAWNIENIA OBIEKTOWE
REVOKE
GRANT SELECT ON tabela1 TO U1;

GRANT SELECT ON tabela1 TO PUBLIC;
GRANT INSERT ON tabela2 TO U1
WITH GRANT OPTION;
GRANT UPDATE (k1, k2) ON pracownicy TO U2;
ON definiuje konkretną tabelę, bazę lub inny obiekt
(np. dziedzinę),
 po słowie TO umieszczamy listę użytkowników,
którym przyznane zostaną przywileje, ewentualnie
słowo PUBLIC, jeśli przywileje mają być przyznane
wszystkim użytkownikom bazy danych (nawet tym,
którzy jeszcze nie zostali stworzeni),
Odbiera uprawnienia do konkretnych obiektów lub
poleceń systemowych nadane użytkownikom, grupom
czy rolom,
REVOKE [GRANT OPTION FOR]
{lista_uprawnień|ALL} [ON obiekt]
FROM {lista_użytkowników |PUBLIC}
{CASCADE|RESTRICT};
GRANT SELECT, INSERT, UPDATE, DELETE ON
tabela1 TO PUBLIC;
3
2010-11-22
REVOKE
Opcja GRANT OPTION FOR cofa autoryzację do
przekazywania uprawnień,
 Opcja RESTRICT odbiera tylko wymienione
uprawnienie,
 Opcja CASCADE odbiera podane uprawnienia i
wszystkie od nich zależne,
REVOKE

REVOKE ALTER ANY TABLE FROM U1;
REVOKE SELECT ON tabela1 TO U3;
REVOKE ALL ON tabela1 TO PUBLIC;
REVOKE ALL ON tabela2 TO U2 CASCADE;
ROLE
ROLE
rozwinięcie idei użytkowników, grupy uprawnień w
ramach jednego nazwanego zbioru,
 standard SQL nie obsługuje bezpośrednio grup
użytkowników, wiele SZBD rozwiązuje ten problem
rozszerzając standard SQL),
CREATE ROLE abc;

Składnia PostgreSQL
CREATE ROLE nazwa [ [ WITH ] option [ ... ] ];
GRANT SELECT, UPDATE ON tab1 TO abc;
GRANT abc TO U2; - przypisanie roli użytkownikowi
U2
CREATE ROLE mmm WITH LOGIN PASSWORD
'jw8s0F4' VALID UNTIL '2010-01-01';
DROP ROLE abc;
4
2010-11-22
PERSPEKTYWY
W YKŁAD PRZYGOTOWANO NA PODSTAWIE
Perspektywy uznawane są za jeden z
mechanizmów zapewniania bezpieczeństwa i
sposobów kontroli dostępu,
 Ograniczają bowiem dostęp do istotnych danych
dla nieuprawnionych użytkowników poprzez ich
ukrywanie,
 Utworzone perspektywy są następnie poddawane
procesowi autoryzacji za pomocą instrukcji GRANT.


K. Kline, D. Kline, SQL. Almanach. Opis poleceń
języka, Helion, 2004,
 P. Wilton, J. Colby, SQL od podstaw, Helion, 2006,
 http://wazniak.mimuw.edu.pl/index.php?title=Bazy_
danych.
5

Podobne dokumenty