| Termin | Definicja |
|---|---|
| Tworzenie użytkownika | Tworzenie użytkownika poleceniem CREATE USER dodaje tożsamość w obrębie konkretnej bazy danych. Tworzenie użytkownika w bazie danychTworzenie użytkownika oznacza przygotowanie odrębnej tożsamości, za pomocą której można logować się do systemu bazodanowego i wykonywać określone operacje. W praktyce nie chodzi wyłącznie o wpisanie nazwy oraz hasła. Podczas tej czynności ustala się sposób uwierzytelniania, zakres dostępu, zasady wygasania danych logowania oraz relację między użytkownikiem a konkretną bazą, schematem lub obiektami takimi jak tabele, widoki i procedury. W wielu systemach tworzenie użytkownika wykonuje się poleceniem Ważne jest rozróżnienie użytkownika, roli i konta technicznego. Użytkownik zwykle opisuje konkretną tożsamość, rola służy do grupowania uprawnień, a konto techniczne jest przeznaczone dla aplikacji, skryptu lub usługi. Takie rozdzielenie ułatwia kontrolę dostępu i pozwala ograniczyć zakres czynności wykonywanych przez każdy element środowiska. Nie powinno się przyjmować, że utworzenie konta automatycznie daje dostęp do wszystkich danych. W prawidłowo skonfigurowanej bazie nowa tożsamość otrzymuje tylko uprawnienia, które zostały jej świadomie przypisane. Tworzenie użytkownika a role, schematy i uprawnieniaSamo utworzenie użytkownika jest pierwszym etapem konfiguracji dostępu. Kolejny etap obejmuje przyznanie praw, na przykład do odczytu wybranych tabel, modyfikowania danych albo wykonywania określonych procedur. Do tego celu używa się zazwyczaj polecenia Przykładowo konto przeznaczone dla raportowania może potrzebować wyłącznie odczytu danych. Konto używane przez aplikację może wymagać odczytu i zapisu w kilku tabelach, ale nie powinno mieć możliwości usuwania całej struktury bazy. Konto administracyjne może mieć szersze uprawnienia, jednak powinno być wykorzystywane tylko do zadań wymagających podwyższonego dostępu. Takie rozdzielenie zmniejsza skutki błędów w aplikacji, nieprawidłowych zapytań oraz przejęcia danych logowania. Istotne znaczenie ma również schemat. W niektórych systemach schemat porządkuje obiekty i może być używany do oddzielenia danych różnych aplikacji albo obszarów funkcjonalnych. Użytkownik może mieć prawo korzystania z danego schematu, ale brak dostępu do jego tabel. Z tego powodu po utworzeniu konta należy sprawdzić zarówno prawa do samego schematu, jak i prawa do obiektów znajdujących się w jego obrębie. Warto też uwzględnić dziedziczenie uprawnień. Jeżeli użytkownik zostanie przypisany do roli posiadającej szeroki dostęp, rzeczywisty zakres jego możliwości może być większy, niż wynikałoby to z bezpośredniej konfiguracji konta. Przegląd powinien obejmować prawa nadane bezpośrednio, role przypisane pośrednio oraz reguły obowiązujące na poziomie całego systemu. Tworzenie użytkownika i typowe problemy konfiguracyjneJednym z częstszych problemów jest próba utworzenia konta o nazwie, która już istnieje. W takiej sytuacji polecenie może zakończyć się błędem albo zachować się inaczej, jeśli zastosowano konstrukcję warunkową. Przed zmianą należy ustalić, czy istniejące konto jest używane przez aplikację, skrypt lub osobę. Usunięcie albo zastąpienie takiej tożsamości bez sprawdzenia zależności może przerwać działanie programu. Drugim problemem jest pomylenie konta systemowego z użytkownikiem bazy danych. Nazwa używana w systemie operacyjnym nie musi oznaczać tożsamości rozpoznawanej przez silnik bazy. Podobnie konto utworzone w jednym środowisku nie zawsze będzie dostępne w innej bazie lub na innym serwerze. Przed konfiguracją należy ustalić, gdzie użytkownik ma być rozpoznawany, jak ma się logować oraz z jakimi obiektami ma pracować. Trudności może powodować także niewłaściwa metoda uwierzytelniania. W zależności od konfiguracji dostęp może odbywać się przy użyciu hasła, certyfikatu, konta systemowego, centralnego katalogu tożsamości albo innego mechanizmu. Samo ustawienie hasła nie rozwiąże problemu, jeżeli połączenia są ograniczone przez reguły dostępu, zaporę, ustawienia nasłuchiwania lub listę dozwolonych źródeł. Niebezpiecznym błędem jest nadanie uprawnień szerszych, niż wymaga tego zadanie. Przyznanie pełnego dostępu tylko dlatego, że jest to szybsze, utrudnia późniejszy audyt i zwiększa ryzyko niezamierzonej zmiany danych. Należy określić minimalny zakres operacji, a następnie sprawdzić go za pomocą testowego logowania oraz przykładowych zapytań. Weryfikacji powinno podlegać zarówno to, co użytkownik może wykonać, jak i to, czego wykonać nie powinien. Warto uważać na hasła wpisywane bezpośrednio w historii poleceń, skryptach lub plikach konfiguracyjnych. Dane logowania mogą pozostać w kopiach zapasowych, dziennikach powłoki albo repozytoriach zmian. Bezpieczniejsze rozwiązanie wymaga stosowania mechanizmów przechowywania sekretów, ograniczenia dostępu do plików oraz regularnej zmiany danych uwierzytelniających zgodnie z przyjętą polityką. Tworzenie użytkownika w codziennej administracjiPrzed utworzeniem konta należy zebrać podstawowe informacje: przeznaczenie użytkownika, właściciela konta, wymagane operacje, zakres danych, sposób logowania oraz przewidywany czas używania. Jeżeli konto jest zakładane dla aplikacji, dobrze jest przypisać je do konkretnego komponentu i opisać w dokumentacji. Jeżeli jest przeznaczone dla osoby, należy określić procedurę odbierania dostępu po zmianie obowiązków lub zakończeniu współpracy. Konfigurację najlepiej wykonywać według powtarzalnego schematu. Najpierw sprawdza się aktualny stan, następnie tworzy tożsamość, przypisuje odpowiednią rolę, nadaje minimalne uprawnienia i wykonuje test. Po zakończeniu należy zapisać informacje o zakresie dostępu, dacie utworzenia oraz osobie odpowiedzialnej za konto. Pozwala to odtworzyć ustawienia po awarii i ogranicza ryzyko tworzenia przypadkowych wyjątków. Przydatne jest rozdzielenie kont osobistych i kont wspólnych. Konto osobiste ułatwia ustalenie, kto wykonał daną operację. Konto wspólne może być uzasadnione w niektórych procesach, ale powinno mieć jasno określony cel, kontrolę nad hasłem i dodatkowe zapisy aktywności. Nie należy używać jednego konta administracyjnego do codziennej pracy, jeśli możliwe jest przygotowanie kont o węższym zakresie praw. Po utworzeniu użytkownika należy sprawdzić logowanie z właściwego miejsca, dostęp do wymaganych obiektów oraz reakcję na próbę wykonania niedozwolonej czynności. Test powinien obejmować również błędne hasło, wygasanie dostępu, zmianę roli i odłączenie konta. Dzięki temu można wykryć różnicę między konfiguracją zapisaną w dokumentacji a rzeczywistym działaniem systemu. Warto także prowadzić okresowy przegląd użytkowników. Konta nieużywane, tymczasowe i przypisane do zakończonych projektów powinny być blokowane albo usuwane zgodnie z ustaloną procedurą. Przed usunięciem należy sprawdzić zależności, ponieważ konto może być wykorzystywane przez zadanie automatyczne lub aplikację działającą w tle. W razie wątpliwości bezpieczniejszym etapem pośrednim bywa czasowe zablokowanie dostępu i obserwacja działania powiązanych procesów. Kiedy zgłosić tworzenie użytkownika do serwisuPomoc serwisowa może być potrzebna, gdy nie można ustalić, gdzie znajduje się konfiguracja użytkowników, występują błędy logowania albo nadane uprawnienia nie działają zgodnie z założeniami. Warto zgłosić problem również wtedy, gdy konto zostało utworzone, lecz aplikacja nie może nawiązać połączenia, pojawiają się komunikaty o braku dostępu do tabel lub nie wiadomo, czy poprzednie hasło nadal jest używane przez inne procesy. W przypadku komputera przeznaczonego do pracy z bazą warto wcześniej przygotować opis objawów, nazwę używanego programu, moment pojawienia się problemu oraz informację o ostatnich zmianach. Pomocne są także komunikaty błędów, bezpiecznie zanonimizowane fragmenty konfiguracji i opis oczekiwanego zakresu dostępu. Nie należy przekazywać haseł w zwykłej wiadomości ani umieszczać ich w publicznych plikach. Warszawskie Pogotowie Komputerowe 24/7 może zostać wskazane jako miejsce konsultacji przy problemach z konfiguracją komputera, połączeniem z bazą danych i uporządkowaniem dostępu użytkowników. Przed rozpoczęciem prac należy ustalić zakres czynności, sposób zabezpieczenia danych oraz wymagania dotyczące kont. Po zakończeniu powinno zostać sprawdzone logowanie, działanie potrzebnych operacji i brak niezamierzonego dostępu do pozostałych zasobów. Tworzenie użytkownika powinno być traktowane jako element całego procesu zarządzania dostępem. Prawidłowy rezultat obejmuje nie tylko pojawienie się nowej nazwy na liście kont, lecz także właściwe uwierzytelnianie, ograniczone uprawnienia, możliwość kontroli aktywności i jasną procedurę wycofania dostępu. Takie podejście ułatwia utrzymanie porządku, ogranicza liczbę błędów i pozwala bezpieczniej rozwijać aplikacje korzystające z bazy danych. |