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