Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

Uprawnienia do widoku

Termin Definicja
Uprawnienia do widoku

Uprawnienia do widoku pozwalają udostępnić dane bez przyznawania bezpośredniego dostępu do leżących pod nim tabel.

Widok jako kontrolowana warstwa dostępu do danych

Uprawnienia do widoku określają, kto może korzystać z przygotowanego zapytania przedstawionego jako obiekt bazy danych. Widok może zwracać wybrane kolumny, ograniczać liczbę rekordów oraz łączyć dane z kilku tabel. Użytkownik otrzymuje dostęp do wyniku widoku, ale nie musi otrzymać bezpośredniego prawa odczytu do tabel, z których ten wynik powstaje. Dzięki temu widok pełni funkcję pośredniej warstwy między danymi a aplikacją, raportem lub kontem użytkownika.

Takie rozwiązanie pozwala rozdzielić strukturę przechowywania danych od sposobu ich udostępniania. Tabela może zawierać wiele pól technicznych, pomocniczych lub przeznaczonych wyłącznie dla określonych procesów, natomiast widok może prezentować tylko kolumny potrzebne do konkretnego zadania. Nadanie prawa odczytu do widoku nie oznacza automatycznie nadania prawa odczytu do tabel bazowych. Zakres faktycznej ochrony zależy jednak od reguł obowiązujących w konkretnym silniku bazy danych oraz od konfiguracji właścicieli, schematów i mechanizmu sprawdzania uprawnień.

Jak działa odwołanie do tabel ukrytych za widokiem

Podczas wykonywania zapytania do widoku silnik bazy danych rozwija jego definicję i analizuje odwołania do tabel, innych widoków albo funkcji. Następnie sprawdza, czy konto wykonujące operację ma wystarczające uprawnienia do użycia danego obiektu. W wielu konfiguracjach użytkownik może wykonać SELECT na widoku, mimo że nie ma bezpośredniego prawa SELECT na tabeli źródłowej. Jest to możliwe dzięki regułom łańcucha własności albo innym mechanizmom kontroli zależności obiektów.

Widok nie jest kopią danych. Zwykle przechowuje definicję zapytania, a wynik jest obliczany podczas odwołania do widoku, chyba że zastosowano osobny mechanizm materializacji lub przechowywania wyniku. Zmiana danych w tabelach źródłowych może więc zmienić rezultat zwracany przez widok bez modyfikowania samego obiektu widoku. Zmiana definicji tabeli, nazwy kolumny albo typu danych może natomiast spowodować błąd podczas wykonywania zapytania lub unieważnić zależności. Z tego powodu uprawnienia trzeba analizować razem z definicją widoku, jego właścicielem i obiektami, do których się odwołuje.

Odczyt, modyfikacja i ograniczenie zakresu rekordów

Najczęściej przyznawanym prawem dotyczącym widoku jest prawo odczytu danych. Nie należy utożsamiać go z możliwością modyfikowania tabel. Widok może być używany wyłącznie do odczytu, ale niektóre silniki pozwalają także wykonywać przez niego operacje INSERT, UPDATE albo DELETE, jeżeli spełnione są określone warunki. Znaczenie ma między innymi prostota definicji widoku, liczba tabel uczestniczących w zapytaniu, obecność agregacji, grupowania, złączeń oraz kolumn wyliczanych. Uprawnienie do modyfikacji widoku powinno być nadawane osobno i tylko wtedy, gdy przewidziany sposób działania jest jednoznaczny.

Widok może ograniczać nie tylko kolumny, lecz także rekordy. Warunek w klauzuli WHERE może powodować, że użytkownik zobaczy wyłącznie dane spełniające ustalone kryterium. Nie jest to jednak uniwersalny zamiennik mechanizmów kontroli dostępu na poziomie wierszy. Trzeba sprawdzić, czy użytkownik nie może ominąć ograniczenia przez inny widok, tabelę, funkcję, procedurę lub konto posiadające szersze uprawnienia. Należy również kontrolować prawa do tworzenia nowych obiektów, ponieważ możliwość definiowania obiektów zależnych może w niektórych środowiskach wpływać na sposób uzyskiwania dostępu do danych.

Weryfikacja uprawnień do widoku w praktyce

Analizę problemu należy rozpocząć od ustalenia nazwy widoku, jego schematu oraz konta, z którego wykonywane jest zapytanie. Następnie warto sprawdzić definicję widoku, listę tabel i widoków zależnych, właściciela obiektu oraz prawa przyznane bezpośrednio i przez role. Sam komunikat o braku dostępu nie wskazuje jeszcze, czy problem dotyczy widoku, tabeli źródłowej, schematu, funkcji użytej w definicji, czy zmiany właściciela jednego z obiektów. Pomocne jest wykonanie kontrolnego zapytania do widoku oraz osobne sprawdzenie, czy użytkownik rzeczywiście nie ma dostępu do tabel bazowych.

Przy przywracaniu działania należy nadać możliwie wąskie uprawnienie do właściwego widoku, zamiast rozszerzać dostęp do całych tabel lub całego schematu. Po zmianie trzeba sprawdzić zarówno przypadek dozwolony, jak i przypadek, który powinien pozostać zablokowany. Warto także przeanalizować zależności po zmianach struktury bazy, ponieważ przebudowa tabeli, zmiana schematu albo odtworzenie kopii zapasowej może zmienić właściciela lub sposób dziedziczenia praw. Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów i komputerów PC, w tym diagnostyką klienta bazodanowego, konfiguracji połączenia, zapisanych poświadczeń i komunikatów aplikacji, natomiast poprawność modelu uprawnień wymaga oceny w samym silniku bazy danych.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę