Sunday, January 13th, 2008...10:42 pm

Po co w bazie danych użytkownicy … ?

Jump to Comments

Ano wÅ‚aÅ›nie … po co? Nie chodzi mi tutaj o użytkowników w sensie klientów korzystajÄ…cych z bazy danych, bez nich utrzymywanie zbiorów danych raczej nie ma sensu (chociaż nie wÄ…tpie, że takowe zasoby gromadzone w bliżej nieokreÅ›lonym celu istniejÄ… – pierwszy kierunek poszukiwaÅ„ takowych ustawiam na instytucje rzÄ…dowe). Chodzi mi w tym wypadku o konta użytkowników (podmioty bezpieczeÅ„stwa) tworzone w bazie danych.

Instaluje wÅ‚aÅ›nie w celach testowych do pewnej prezentacji bazÄ™ danych Oracle (w sposób bardziej konwencjonalny, ale w przybliżonym do tej instalacji czasie). Scenariusz prezentacji jest dosyć typowy – zarzÄ…dzanie kontami użytkowników w heterogenicznym Å›rodowisku różnego rodzaju systemów. W takich scenariuszach (w prawdziwych instalacjach również) prawie zawsze pojawia siÄ™ temat zarzÄ…dzania kontami użytkowników w bazie danych Oracle. Pytanie tylko … po co?

Tradycyjny, kultywowany z pietyzmem przez programistów, model zarzÄ…dzania uprawnieniami w bazach danych, i to nie tylko Oracle opiera siÄ™ o konta tworzone w bazie danych, nadawane im uprawnienia etc. Dodatkowo pojawia siÄ™ w tych rozwiÄ…zaniach nieÅ›miertelny wrÄ™cz model zaszywania wszystkich danych sÅ‚użących poÅ‚Ä…czeniu z bazÄ… danych w Å‚aÅ„cuchach definiujÄ…cych poÅ‚Ä…czenie – ale to już inny temat. Model ten ma jednÄ… wadÄ™ – baza danych z samej definicji sÅ‚uży do zapewnienia mechanizmów zarzÄ…dzania danymi – nie użytkownikami. W dużej organizacji, wdrożenie aplikacji opartej na modelu użytkowników definiowanych w bazie danych prÄ™dzej czy później skutkuje problemem zwiÄ…zanym z zarzÄ…dzaniem setkami lub tysiÄ…cami obiektów użytkowników zdefiniowanych w bazie (Oracle, MS SQL czy też innej). Pytanie tylko czy nie można inaczej ?

W trakcie rzeczonej instalacji, jedno z pytaÅ„ w dialogu instalatora dotyczy usÅ‚ugi katalogwej z której chciaÅ‚bym skorzystać – do wyboru Active Directory lub OID. To pokazuje, że mechanizmy, które mogÄ… nas uwolnić od piekieÅ‚ka zarzÄ…dzania użytkownikami sÄ… powszechnie dostÄ™pne. W przypadku MS SQL uwierzytelnienie zintegrowane jest dostarczane w produkcie. W przypadku Oracle o ile siÄ™ nie mylÄ™ wymaga to dodatku o nazwie Advanced Security (pÅ‚atny). RozwiÄ…zanie proste i logiczne – jeżeli mamy już usÅ‚ugÄ™ katalogowÄ… (a w każdej z firm które dane byÅ‚o mi zobaczyć w ten lub inny sposób takowa istnieje) to dalczego nie skorzystać z jej funkcjonalnoÅ›ci? Po co nam dodatkowe konta w bazie danych … po co dodatkowe nakÅ‚ady na zarzÄ…dzanie nimi? Nasi DBA majÄ… inne zajÄ™cia niż zarzÄ…dzanie kontami i zgubionymi hasÅ‚ami. BezpieczeÅ„stwo zyskuje, DBA zyskujÄ… … pytanie czy programista zyskuje? Pewnie musi poÅ›wiÄ™cić trochÄ™ wiÄ™cej czasu na stworzenie Å›rodowiska developerskiego, testy również bÄ™dÄ… bardziej rozbudowane. Ale w koÅ„cowym rozrachunku to siÄ™ powinno opÅ‚acić.

Taki maÅ‚y utopijny apel wiÄ™c … zacznijmy korzystać z rzeczy do tych celów, do których sÄ… przeznaczone.

Niech nasz system RDBMS zarządza swoimi bazami danych, niech usługa katalogowa służy jako źródło uwierzytelnienia a jeżeli jest to możliwe to i autoryzacji. Systemy będą prostsze w zarządzaniu, koszty ich utrzymania spadną a użytkownikom zniknie jedna karteczka z hasłem z monitora.

Sytuacja idealna … wszyscy wygrywajÄ…. Pytanie wiÄ™c dlaczego nadal z tego szeroko siÄ™ nie korzysta i ilość kont użytkowników w bazach danych roÅ›nie??

5 Comments

  • po co ? raczej “dla czego?” poniewaz imho wytlymaczenie nie jest odpowiedzia a raczej historia. wystarczy spojrzej na bazy danych, zeby stwierdzic, ze to wszyskto zyje w sredniowieczu – relacyjne bazy danych, poniewaz obiektowosc sie z jakichs wzgledow nie sprawdza [ponoc bazy obiektowe maja mala wydajnosc – ale jak maja miec wieksza, skoro nikt w nie inwestuje w rozwoj?], prmitywny SQL, ktory moglby byc przykladem “jak nie powinno sie tworzyc jezykow”. o ile zmieniaja sie wydajnosci, konfiguracja fizyczna baz etc, o tyle caly trzon baz danych sie nie zmienia i pochodzi z przedpotopowej epoki. a wraz z tym metodologie, administracja itp itd….

  • Tomek,

    a pytanie z cyklu głupie: dla MS SQL Server 2005 jak dostawać się narzędziami SQL-owymi do bazy gdzie login jest Windows Inegrated z maszyny która znajduje się poza domeną w której stoi SQL.
    Może ja czegoś nie wiem (prawie na pewno).

    Tak, wiem daje siÄ™ obejść problem na wiele sposobów (np. przez webserwisowe proxy na IIS-ie 🙂 ). Ale dostÄ™pu bezpoÅ›rednio do bazy danych nie dostaniesz.

  • @nexor: a po co zmieniać coÅ› co chodzi caÅ‚kiem nieźle.
    By było nowocześniej?

    A tak swojÄ… drogÄ… to nadal podejrzewam, że wyÅ‚Ä…czywszy dane typu binarnego enginem baz danych który przetwarza najwiÄ™cej danych jest pewnie Excel 🙂

  • To ja zapytam siÄ™ inaczej czy zawsze serwer sql-owy musi mieć dostÄ™p do AD bo ja sÄ…dzÄ™ że nie zawsze i co wtedy jak uwierzytelniać na serwerze użytkowników?

    (Nie chodzi mi tu o kwestię że nie ma w ogóle dostępu tylko nie ma go w danej chwili i co może sobie serwer sql-owy poczekać aż AD mu łaskawie odpowie?)

    Należało by wtedy dość znacznie przebudować bazę danych a i AD należało by do tego pewnie przystosować mam na myśli większa ilość zapytań do AD o uwierzytelnienie użytkownika ze strony SQL-a . Czyli dodatkowy zapas mocy dla SQL-a i AD.

  • Jeżeli serwer SQL dziaÅ‚a w Å›rodowisku firmy, w której sÄ… używane usÅ‚ugi katalogowe to sytuacja, w której serwer nie ma dostÄ™pu do tej usÅ‚ugi oznacza, że mamy do czynienia z jednÄ… z nastÄ™pujÄ…cych sytuacji:

    – nastÄ…piÅ‚a taka awaria w sieci, że nikt do niczego nie ma dostÄ™pu, i wtedy dostÄ™p do tego SQL to najmniejszy problem
    – usÅ‚ugi w sieci firmy sÄ… źle skonfigurowane albo źle utrzymywane, i wtedy firma ma wiÄ™kszy problem niż dostÄ™p do tego SQLa. A napewno nie jest to pierwszy problem jaki trzeba zaadresować.

    Teraz pytanie za 95 pkt. – co uważasz że trzebaby byÅ‚o przebudować jeżeli chodzi o samÄ… bazÄ™ danych??? Przecież uprawnienia i tak nadajesz konkretnym użytkownikom, zdefiniowanym w ramach bazy danych. Rożnica jest taka, że wiążesz je z loginem lub grupÄ… Active Directory.
    A już tak wchodzÄ…c bardziej w temat – ja tam nie jestem wielkim DBA ale mi siÄ™ wydaje że uprawnienia to wogóle nadaje siÄ™ na rolÄ™ zdefiniowanÄ… w bazie danych, a już użytkownikowi lub grupie przynaje siÄ™ tylo tÄ… rolÄ™.
    W innym wypadku zarządzanie uprawnieniami może być trochę koszmarne.

    O wydajność AD siÄ™ nie martw – jeżeli jest problem z wydajnoÅ›ciÄ… kontrolerów domeny w Å›rodowisku to patrz sytuacja opisana wczeÅ›niej – firma ma wiÄ™kszy problem niż dostÄ™p do tego SQL i napewno zacznie go rozwiÄ…zywać, ponieważ taka sytuacja bÄ™dzie wpÅ‚ywaÅ‚a na wszystkie usÅ‚ugi w ramach firmy i na pracÄ™ użytkowników.

    Co do wiÄ™kszego obciążenia – proces uwierzytelenienia zachodzi na kontrolerze domeny, w chwili gdy użytkownik siÄ™ loguje. W chwili, gdy użytkownik dostaje siÄ™ do zasobu tak naprawdÄ™ dostaje on tylko “ticket” dostÄ™pu do usÅ‚ugi.Taki ticket jest ważny prze okreÅ›lony czas – to nie dziaÅ‚a tak, że każde stukniÄ™cie do bazy danych to nowy proces zwiÄ…zany z uwierzytelnieniem.

    Pytanie w zasadzie, po co SQL ma dokonywać procesu uwierzytelnienia, po co użytkownicy muszÄ… mieć dodatkowe konto i pamiÄ™tać do niego hasÅ‚o etc. …

Leave a Reply