Wykład 3 Prowadzący: dr Paweł Drozda Użytkownik bazy danych – osoba lub aplikacja, mająca dostęp do części danych zgromadzonych w bazie Uprawnienia – zakres czynności, które użytkownik może wykonać na bazie danych Uwierzytelnianie – weryfikacja użytkownika (w MySQL –na podstawie loginu i hasła zapisanego w bazie) Dwa typy ograniczenia działań: Ograniczenie dostępu do poszczególnych danych (tabele, bazy danych) Ograniczenie wykonywania poszczególnych operacji (SELECT, UPDATE, itd.) Mechanizmy nakładające ograniczenia: System przywilejów Role bazodanowe (tylko Oracle) Prawo wykonywania przez użytkownika określonej akcji w bazie danych lub dostępu do określonego obiektu Przykłady przywilejów: Wstawianie do bazy Usuwanie z bazy Modyfikowanie rekordów Przeglądanie rekordów Tworzenie użytkownika – bez żadnych przywilejów CREATE USER nazwa IDENTIFIED BY [PASSWORD] ‘hasło’; Usuwanie użytkownika DROP USER nazwa; Nadanie hasła SET PASSWORD [for nazwa]=PASSWORD(‘nowehaslo’); Przykład: SET PASSWORD FOR Stefan = PASSWORD(‘qwerty’); Zmiana nazwy użytkownika RENAME USER staranazwa TO nowanazwa; Nadawanie przywilejów – GRANT GRANT rodzajePrzywilejów[(nazwyKolumn)] ON nazwyObiektów TO listaUzytkowników [IDENTIFIED BY [PASSWORD] ‘haslo’] [WITH opcje]; Możliwe przywileje ALL – nadanie wszystkich przywilejów oprócz GRANT OPTION ALTER – możliwość modyfikacji struktury DELETE – możliwość usunięcia danych INDEX – możliwość tworzenia i usuwania indeksu INSERT – możliwość wstawiania danych CREATE – możliwość tworzenia tabel GRANT OPTION – możliwość nadawania uprawnień Możliwe przywileje (cd) CREATE USER – możliwość tworzenia użytkowników CREATE VIEW – możliwość tworzenia perspektyw DROP – możliwość usuwania tabel LOCK TABLES – możliwość blokowania SHOW DATABASES – możliwość obejrzenia wszystkich baz danych w systemie UPDATE – możliwość uaktualnień GRANT SELECT, DELETE, INSERT, UPDATE ON *.* TO student; GRANT SHOW DATABASES ON *.* TO student; GRANT ALTER, DROP, CREATE ON bazka.* TO student; Rodzaje obiektów *.* - dostęp do wszystkich baz danych w systemie Nazwa.* - dostęp do bazy o nazwie Nazwa Nazwa – dostęp do tabeli o nazwie Nazwa w aktualnej bazie Baza.Tabela – dostęp do tabeli Tabela w bazie danych Baza GRANT INSERT ON Biblioteka.* TO Bibliotekarz; GRANT UPDATE(zarobki) ON Uni.Pracownik TO Płace; GRANT ALL ON *.* TO Administrator; Use Pizzeria GRANT SELECT ON Zamowienia TO Kelner; Używając GRANT dla istniejącego użytkownika – zmiana przywilejów GRANT dla nieistniejącego użytkownika – powstaje nowy użytkownik z przywilejami określonymi w poleceniu Hasło gdy powstaje nowy użytkownik bez hasła – logowanie bez hasła Gdy ze słowem PASSWORD ‘hasło’ – hasło musi być zakodowane funkcją PASSWORD Bez PASSWORD ‘hasło’ – hasło podane jako tekst Użytkownik PUBLIC – przywileje nadane dla wszystkich użytkowników Przykłady DROP USER Szukacz; GRANT SELECT ON *.* TO Szukacz; CREATE USER Tworca IDENTIFIED BY ‘wielki’; GRANT CREATE ON nowa.* TO Tworca; GRANT ALL ON *.* TO ADMIN IDENTIFIED BY PASSWORD ‘6af4442460ade563’; GRANT SELECT ON Test.* TO PUBLIC; GRANT OPTION – możliwość nadawania posiadanych uprawnień innym użytkownikom MAX_QUERIES_PER_HOUR – max liczba zapytań na godzinę MAX_UPDATES_PER_HOUR – max liczba aktualizacji na godzinę MAX_CONNECTIONS_PER_HOUR = max liczba połączeń na godzinę MAX_USER_CONNECTIONS – max liczba jednoczesnych połączeń jednego użytkownika Gdy parametry zero – brak ograniczeń REVOKE – składnia REVOKE rodzajePrzywilejów ON nazwyObiektów FROM użytkownicy; Przykład: REVOKE ALTER, DROP on Baza.* FROM Tworca; REVOKE ALL, GRANT OPTION FROM student;