Optymalizacja, Bezpiecze*stwo, Rozproszone

advertisement
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;
Download