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 funkcji

Termin Definicja
Uprawnienia do funkcji

Uprawnienia do funkcji określają, kto może ją wywoływać w ramach zapytań.

Prawo wywołania jako osobne uprawnienie

W bazach danych możliwość wywołania funkcji nie wynika z prawa do odczytu tabel, na których ta funkcja pracuje. Jest odrębnym uprawnieniem nadawanym poleceniem GRANT: dla funkcji skalarnych i procedur używa się prawa EXECUTE, dla funkcji zwracających tabelę prawa SELECT, ponieważ w zapytaniu występują one w miejscu źródła danych. Uprawnienie można nadać konkretnemu użytkownikowi, roli albo całemu schematowi, co upraszcza administrację, bo nowe obiekty w tym schemacie dziedziczą ustawienie. Dostępne jest też odbieranie prawa poleceniem REVOKE oraz jawna odmowa przez DENY, która wygrywa z każdym nadaniem odziedziczonym z roli.

Łańcuch własności i kontekst wykonania

Najciekawszy mechanizm to łańcuch własności. Jeśli funkcja i tabele, z których korzysta, należą do tego samego właściciela, silnik nie sprawdza uprawnień do tabel przy wywołaniu funkcji. Dzięki temu można dać pracownikowi dostęp do wyliczonego wyniku bez otwierania mu całej tabeli z danymi kadrowymi. Łańcuch pęka, gdy obiekty mają różnych właścicieli albo gdy w kodzie pojawia się dynamiczny SQL budowany z tekstu, bo wtedy uprawnienia sprawdzane są dla użytkownika wywołującego. Do sterowania kontekstem służy klauzula EXECUTE AS, pozwalająca wykonać funkcję z uprawnieniami właściciela lub wskazanego użytkownika. To potężne narzędzie, ale i częste źródło luk, gdy zostanie użyte bez namysłu.

Komunikaty o braku uprawnień i ich pułapki

Typowy komunikat o odmowie prawa EXECUTE dla obiektu bywa mylący, bo wskazuje pierwszy napotkany problem, a nie źródło. Klasyczne przyczyny to funkcja utworzona w innym schemacie niż domyślny schemat użytkownika, brak prawa do samego schematu mimo nadania prawa do obiektu, użytkownik bazy odłączony od loginu po przeniesieniu bazy na inny serwer oraz uprawnienie nadane na poziomie serwera zamiast bazy. Osobna pułapka to zmiana treści funkcji poleceniem usuwającym i tworzącym ją na nowo, po której wszystkie wcześniej nadane uprawnienia przepadają; polecenie modyfikujące istniejący obiekt je zachowuje.

Program, który nagle nie łączy się z bazą

W małych firmach objawy wyglądają zwykle tak samo: aplikacja magazynowa lub księgowa wyświetla komunikat o braku dostępu, choć wczoraj działała. Przyczyną bywa aktualizacja programu, zmiana konta użytkownika w systemie, przeniesienie bazy na nowy komputer albo zapora blokująca ruch po zmianie sieci. Warszawskie Pogotowie Komputerowe diagnozuje takie stanowiska, przywraca połączenie z serwerem bazy, porządkuje konta i kopie zapasowe oraz sprawdza kondycję dysku, na którym leżą pliki bazy. Obsługujemy firmy całodobowo, także w weekendy, i udostępniamy sprzęt zastępczy na czas dłuższych napraw.

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