| Termin | Definicja |
|---|---|
| Uprawnienia do kolumny | Uprawnienia do kolumny nadaje się poleceniem GRANT z jawnym wskazaniem nazwy pola. Składnia nadania praw do pojedynczego polaW SQL Server uprawnienie zawęża się, dopisując listę kolumn po nazwie operacji, na przykład GRANT SELECT (nazwa, miasto) ON dbo.Kontrahenci TO rola_handlowcy. Mechanizm działa tylko dla trzech operacji: odczytu, aktualizacji oraz odwołań w kluczach obcych. Nie ma sensu przy usuwaniu, bo DELETE zawsze zabiera cały wiersz, ani przy wykonywaniu procedur. Istotna jest hierarchia: DENY nałożone na konkretną kolumnę przeważa nad GRANT nadanym na całą tabelę, więc nie da się go obejść szerszym uprawnieniem. Widok, maskowanie i filtrowanie wierszy jako rozwiązania konkurencyjneW praktyce częściej zamiast praw kolumnowych tworzy się widok zawierający wyłącznie dozwolone pola i nadaje uprawnienia na nim. Dzięki ciągłości właściciela obiektów użytkownik nie potrzebuje wtedy żadnych praw do tabeli bazowej, co upraszcza późniejsze audyty. Maskowanie danych działa inaczej — wartość jest widoczna w postaci zasłoniętej, ale kolumna wciąż wchodzi do wyniku, a użytkownik z odpowiednim uprawnieniem zobaczy ją w całości. Zabezpieczenie na poziomie wiersza rozwiązuje z kolei problem prostopadły: ogranicza zbiór rekordów, nie zestaw pól. Gdzie ten mechanizm najczęściej się wykładaAplikacja budująca zapytania w postaci SELECT gwiazdka przestaje działać natychmiast, bo serwer odrzuca całe zapytanie z komunikatem o odmowie uprawnienia SELECT do wskazanej kolumny obiektu — nawet jeśli pozostałe pola są dostępne. To najczęstszy powód, dla którego prawa kolumnowe wprowadzone w bazie testowej wywracają program po wdrożeniu. Druga pułapka pojawia się przy odtwarzaniu bazy z kopii na innej instancji: identyfikatory loginów się nie zgadzają, użytkownicy zostają osieroceni i wszystkie szczegółowe uprawnienia przestają obowiązywać do czasu ich ponownego powiązania. Trzecia rzecz to konta o wysokich rolach serwerowych i właściciele bazy — dla nich żadne ograniczenie kolumnowe nie obowiązuje, więc kontrola oparta wyłącznie na nim jest złudna. Kontrola dostępu do danych w programach handlowychPrzy Subiekcie, WAPRO i systemach Comarch pytania o to, kto może zobaczyć marże albo dane osobowe kontrahentów, wracają regularnie. Ustawiamy uprawnienia w samej aplikacji i w instancji SQL Server, dbając, żeby zmiana nie zablokowała codziennej pracy magazynu. Obsługujemy firmy i klientów indywidualnych, a serwer możemy przejąć na miejscu albo zabrać do pracowni własnym transportem. |