Język kontroli danych
Język kontroli danych ( DCL ) to składnia podobna do języka programowania komputerów używana do kontrolowania dostępu do danych przechowywanych w bazie danych ( autoryzacja ). W szczególności jest składnikiem Structured Query Language (SQL). Data Control Language jest jedną z logicznych grup poleceń SQL. SQL jest standardowym językiem dla systemów zarządzania relacyjnymi bazami danych. Instrukcje SQL służą do wykonywania zadań, takich jak wstawianie danych do bazy danych, usuwanie lub aktualizowanie danych w bazie danych lub pobieranie danych z bazy danych.
Chociaż systemy baz danych używają języka SQL, mają również własne dodatkowe, zastrzeżone rozszerzenia, które są zwykle używane tylko w ich systemie. Na przykład serwer Microsoft SQL używa Transact-SQL (T-SQL), który jest rozszerzeniem SQL. Podobnie Oracle używa PL-SQL, który jest ich zastrzeżonym rozszerzeniem tylko dla nich. Jednak standardowe polecenia SQL, takie jak „Wybierz”, „Wstaw”, „Aktualizuj”, „Usuń”, „Utwórz” i „Upuść”, mogą być użyte do wykonania prawie wszystkiego, co trzeba zrobić z bazą danych.
Przykłady poleceń DCL obejmują:
- GRANT , aby umożliwić określonym użytkownikom wykonywanie określonych zadań.
- REVOKE , aby usunąć dostęp użytkownika do obiektu bazy danych.
Operacje, dla których uprawnienia mogą być nadawane lub odbierane użytkownikowi lub roli, dotyczą zarówno języka definicji danych (DDL), jak i języka manipulacji danymi (DML) i mogą obejmować CONNECT, SELECT , INSERT , UPDATE, DELETE , EXECUTE, i UŻYTKOWANIA.
Serwer Microsoft SQL
Zgodnie z Microsoft SQL Server istnieją cztery grupy poleceń SQL.
- Język manipulacji danymi (DML)
- Język definicji danych (DDL)
- Język kontroli danych (DCL)
- Język kontroli transakcji (TCL)
Polecenia DCL służą do kontroli dostępu i zarządzania uprawnieniami użytkowników w bazie danych. Dzięki nim możemy w prosty sposób zezwolić lub zabronić użytkownikom niektórych akcji na tabelach lub rekordach (zabezpieczenia na poziomie wiersza).
Polecenia DCL to:
- GRANT
- Możemy nadać określone uprawnienia do tabeli (i innych obiektów) określonym grupom/użytkownikom bazy danych.
- DENY
- blokuje określone uprawnienia grupom/użytkownikom.
- REVOKE
- to polecenie odbiera uprawnienia grupom/użytkownikom.
Na przykład: GRANT może służyć do nadania użytkownikowi uprawnień do wykonywania SELECT, INSERT, UPDATE i DELETE na określonej tabeli lub wielu tabelach.
Polecenie REVOKE służy do cofnięcia uprawnień (domyślnie) lub cofnięcia określonego polecenia, takiego jak UPDATE lub DELETE, w zależności od wymagań.
Przykład
Udziel SELECT , INSERT , UPDATE , DELETE pracownikowi użytkownikowi1 Odwołaj INSERT pracownikowi użytkownikowi1 Odmów aktualizacji pracownikowi użytkownikowi1 _ _ _ _ _ _
GRANT w pierwszym przypadku nadaliśmy użytkownikowi User1 uprawnienia do wykonywania SELECT, INSERT, UPDATE i DELETE na tabeli zwanej pracownikami.
REVOKE za pomocą tego polecenia możemy przywrócić domyślne uprawnienia, w tym przypadku cofamy polecenie INSERT na tabeli pracownicy dla użytkownika User1.
DENY to specyficzne polecenie. Możemy stwierdzić, że każdy użytkownik ma listę uprawnień, którym odmawia się lub przyznaje, więc polecenie DENY ma na celu jawne zablokowanie niektórych uprawnień do obiektów bazy danych.:
Baza danych Oracle
Baza danych Oracle dzieli polecenia SQL na różne typy. Oni są.
- Oświadczenia języka definicji danych (DDL).
- Oświadczenia języka manipulacji danymi (DML).
- Oświadczenia kontroli transakcji
- Instrukcje kontroli sesji
- Oświadczenie kontroli systemu
- Wbudowane instrukcje SQL
Aby uzyskać szczegółowe informacje, patrz Oracle- TCL
Instrukcje języka definicji danych (DDL) umożliwiają wykonywanie następujących zadań:
- Twórz, zmieniaj i usuwaj obiekty schematu
- Nadawać i odbierać uprawnienia i role
- Analizuj informacje w tabeli, indeksie lub klastrze
- Ustal opcje audytu
- Dodaj komentarze do słownika danych
Tak więc polecenia Oracle Database DDL obejmują przyznanie i odwołanie uprawnień, które w rzeczywistości są częścią języka kontroli danych w serwerze Microsoft SQL.
Składnia przyznania i odwołania w bazie danych Oracle:
Przykład
UDZIEL WYBIERZ , WSTAW , AKTUALIZUJ , USUŃ NA db1 . Pracownik TO użytkownik1 ; ODWOŁAJ WYBIERZ , WSTAW , AKTUALIZUJ , USUŃ NA db1 . Pracownik OD użytkownika1 ;
Zestawienia kontroli transakcji w Oracle
Instrukcje kontroli transakcji zarządzają zmianami wprowadzonymi przez instrukcje DML. Deklaracje kontroli transakcji to:
- POPEŁNIAĆ
- COFNIJ
- PUNKT ZAPISU
- USTAW TRANSAKCJĘ
- USTAW OGRANICZENIE
MySQL
MySQL dzielą instrukcje SQL na różne typy mężów stanu
- Deklaracje definicji danych
- Oświadczenia dotyczące manipulacji danymi
- Oświadczenia transakcyjne i blokujące
- Instrukcje replikacji
- Przygotowane oświadczenia
- Składnia instrukcji złożonej
- Oświadczenia dotyczące administrowania bazą danych
- Oświadczenia o użyteczności
Aby uzyskać szczegółowe informacje, patrz instrukcje transakcyjne MySQL
Składnia przyznania i odwołania jest częścią instrukcji administrowania bazą danych w systemie zarządzania kontami.
Instrukcja GRANT umożliwia administratorom systemu nadawanie uprawnień i ról, które można nadawać kontom i rolom użytkowników. Obowiązują następujące ograniczenia składni:
- GRANT nie może mieszać przyznawania uprawnień i ról w tej samej instrukcji. Dana instrukcja GRANT musi nadawać uprawnienia lub role.
- Klauzula ON rozróżnia, czy instrukcja nadaje uprawnienia, czy role:
- W przypadku ON instrukcja nadaje uprawnienia
- Bez ON instrukcja przyznaje role.
- Do konta można nadawać zarówno uprawnienia, jak i role, ale należy użyć osobnych instrukcji GRANT, każda o składni odpowiedniej do tego, co ma zostać nadane.
Instrukcja REVOKE umożliwia administratorom systemu odbieranie uprawnień i ról, które mogą być odbierane kontom i rolom użytkowników.
Przykłady
UNIEWAŻNIJ WSTAW NA * . * Z 'jeffrey' @'localhost' ; REVOKE 'role1' , 'role2' FROM 'user1' @'localhost' , 'user2' @'localhost' ; ODWOŁAJ WYBÓR NA świecie . * Z „roli 3” ; UDZIEL WSZYSTKO NA db1 . * TO 'jeffrey' @'localhost' ; GRANT 'role1' , 'role2' TO 'user1' @'localhost' , 'user2' @'localhost' ; GRANT SELECT NA świecie . * TO 'rola 3' ;
W PostgreSQL wykonywanie DCL jest transakcyjne i można je wycofać.
Grant i Revoke to polecenia SQL używane do kontrolowania uprawnień nadawanych użytkownikom w bazach danych
SQLite nie ma żadnych poleceń DCL, ponieważ nie ma nazw użytkowników ani loginów. Zamiast tego SQLite polega na uprawnieniach systemu plików , aby określić, kto może otwierać bazę danych i uzyskiwać do niej dostęp.