Rozproszony DBMS - Kontrola bazy danych
Kontrola baz danych odnosi się do zadania egzekwowania przepisów, aby zapewnić prawidłowe dane autentycznym użytkownikom i aplikacjom bazy danych. Aby poprawne dane były dostępne dla użytkowników, wszystkie dane powinny być zgodne z ograniczeniami integralności zdefiniowanymi w bazie danych. Poza tym dane powinny być chronione przed nieuprawnionymi użytkownikami, aby zachować bezpieczeństwo i prywatność bazy danych. Kontrola bazy danych jest jednym z podstawowych zadań administratora bazy danych (DBA).
Trzy wymiary kontroli bazy danych to:
- Authentication
- Prawa dostępu
- Ograniczenia integralności
Poświadczenie
W systemie rozproszonych baz danych uwierzytelnianie to proces, za pomocą którego tylko uprawnieni użytkownicy mogą uzyskać dostęp do zasobów danych.
Uwierzytelnianie można wymusić na dwóch poziomach -
Controlling Access to Client Computer- Na tym poziomie dostęp użytkownika jest ograniczony podczas logowania do komputera klienckiego, który zapewnia interfejs użytkownika do serwera bazy danych. Najpopularniejszą metodą jest kombinacja nazwy użytkownika i hasła. Jednak w przypadku danych o wysokim poziomie bezpieczeństwa można zastosować bardziej wyrafinowane metody, takie jak uwierzytelnianie biometryczne.
Controlling Access to the Database Software- Na tym poziomie oprogramowanie / administrator bazy danych przypisuje użytkownikowi pewne poświadczenia. Użytkownik uzyskuje dostęp do bazy danych przy użyciu tych poświadczeń. Jedną z metod jest utworzenie konta logowania na serwerze bazy danych.
Prawa dostępu
Prawa dostępu użytkownika odnoszą się do uprawnień, które użytkownik ma w odniesieniu do operacji DBMS, takich jak prawa do tworzenia tabeli, usuwania tabeli, dodawania / usuwania / aktualizowania krotek w tabeli lub kwerendy w tabeli.
W środowiskach rozproszonych, ze względu na dużą liczbę tabel i jeszcze większą liczbę użytkowników, nie jest możliwe przypisanie użytkownikom indywidualnych praw dostępu. Tak więc DDBMS definiuje pewne role. Rola to konstrukcja z określonymi uprawnieniami w systemie bazy danych. Po zdefiniowaniu różnych ról poszczególnym użytkownikom przypisuje się jedną z tych ról. Często hierarchia ról jest definiowana zgodnie z hierarchią władzy i odpowiedzialności organizacji.
Na przykład następujące instrukcje SQL tworzą rolę „Księgowy”, a następnie przypisują tę rolę użytkownikowi „ABC”.
CREATE ROLE ACCOUNTANT;
GRANT SELECT, INSERT, UPDATE ON EMP_SAL TO ACCOUNTANT;
GRANT INSERT, UPDATE, DELETE ON TENDER TO ACCOUNTANT;
GRANT INSERT, SELECT ON EXPENSE TO ACCOUNTANT;
COMMIT;
GRANT ACCOUNTANT TO ABC;
COMMIT;
Kontrola integralności semantycznej
Kontrola integralności semantycznej definiuje i wymusza ograniczenia integralności systemu bazy danych.
Ograniczenia integralności są następujące -
- Ograniczenie integralności typu danych
- Ograniczenie integralności jednostki
- Więzy więzów integralności
Ograniczenie integralności typu danych
Ograniczenie typu danych ogranicza zakres wartości i typ operacji, które można zastosować do pola o określonym typie danych.
Załóżmy na przykład, że tabela „HOSTEL” ma trzy pola - numer hostelu, nazwę hostelu i pojemność. Numer hostelu powinien zaczynać się wielką literą „H” i nie może mieć wartości NULL, a pojemność nie powinna przekraczać 150. Do definicji danych można użyć następującego polecenia SQL -
CREATE TABLE HOSTEL (
H_NO VARCHAR2(5) NOT NULL,
H_NAME VARCHAR2(15),
CAPACITY INTEGER,
CHECK ( H_NO LIKE 'H%'),
CHECK ( CAPACITY <= 150)
);
Kontrola integralności jednostki
Kontrola integralności jednostki wymusza reguły, dzięki czemu każda krotka może być jednoznacznie zidentyfikowana na podstawie innych krotek. W tym celu definiuje się klucz podstawowy. Klucz podstawowy to zestaw minimalnych pól, które mogą jednoznacznie identyfikować krotkę. Ograniczenie integralności jednostki stwierdza, że żadne dwie krotki w tabeli nie mogą mieć identycznych wartości dla kluczy podstawowych i żadne pole, które jest częścią klucza podstawowego, nie może mieć wartości NULL.
Na przykład w powyższej tabeli hosteli numer hostelu można przypisać jako klucz podstawowy za pomocą następującej instrukcji SQL (ignorując sprawdzanie) -
CREATE TABLE HOSTEL (
H_NO VARCHAR2(5) PRIMARY KEY,
H_NAME VARCHAR2(15),
CAPACITY INTEGER
);
Więzy więzów integralności
Więzienie integralności referencyjnej określa reguły kluczy obcych. Klucz obcy to pole w tabeli danych, które jest kluczem podstawowym powiązanej tabeli. Ograniczenie więzów integralności określa regułę, zgodnie z którą wartość pola klucza obcego powinna albo należeć do wartości klucza podstawowego tabeli, do której istnieje odwołanie, albo być całkowicie NULL.
Na przykład rozważmy stolik studencki, na którym student może zdecydować się na zamieszkanie w hostelu. Aby to uwzględnić, klucz podstawowy tabeli hostelu powinien być zawarty jako klucz obcy w tabeli uczniów. Poniższa instrukcja SQL zawiera to -
CREATE TABLE STUDENT (
S_ROLL INTEGER PRIMARY KEY,
S_NAME VARCHAR2(25) NOT NULL,
S_COURSE VARCHAR2(10),
S_HOSTEL VARCHAR2(5) REFERENCES HOSTEL
);