Microsoft SQL Server 2008 Policy-Based Management

Microsoft SQL Server 2008 Policy-Based Management.

V tejto časti nášho seriálu o novinkách SQL Server 2008 sa zameriame na novinky určené pre administrátorov. Jednou z takýchto noviniek je aj Declarative Management Framework (DMF). A ako korešponduje DMF s názvom uvedeným v nadpise ? No jednoducho – DMF je pôvodný názov, s ktorým sme sa mohli stretávať od júlovej verzie CTP SQL Server 2008 a v decembri 2007 bol tento názov zmenený na SQL Server 2008 Policy-Based Management.

Poďme sa teraz pozrieť bližšie na to, čo to vlastne ten policy-based management je. Policy-based management je nástroj založený na využívaní tzv. politík, ktorý je určený pre administrátorov a pomocou ktorého môžu administrátori centrálne spravovať databázové inštancie. Pod správou inštancií si môžeme predstaviť konfiguráciu samotnej inštancie (napr. konfigurácia sieťových protokolov, povolenie/zakázanie CLR, database mail, a pod.), alebo napr. dodržiavanie firemnej názvoslovnej konvencie na pomenovávanie objektov – databáz, tabuliek, procedúr, funkcií, a pod. Ako príklad môžeme uviesť situáciu vo firme, kde bezpečnostné oddelenie nepovolilo na žiadnej inštancii SQL 2008 využívanie Database Mail – databázový administrátor môže vytvoriť politiku, ktorá neumožní nainštalovať Database Mail v žiadnej inštancii SQL Server vo firme. Alebo v druhom prípade, ak má firma schválenú názvoslovnú konvenciu pre uložené procedúry s prefixom usp_* a administrátor vytvorí politiku na dodržiavanie tejto konvencie, tak nikto nenasadí procedúru s iným prefixom ako je povolené.

SQL Server 2008 Policy based management

Pozostáva z 3 hlavných komponentov:

  • Správa politík
  • Ad-hoc administrácia
  • Automatická administrácia

Správa politík

Pod správou politík rozumieme vytváranie, aktualizáciu a mazanie politík.

Ad-hoc administrácia

Ad-hoc administrácia je okamžitá inicializácia konktrétnej politiky, ktorá konfiguráciu cieľového servra buď kontroluje (režim check) alebo ju nastavuje do súladu s pravidlami definovanými v politike (režim enforce).

Automatizovaná administrácia

O automatizovanej administrácii hovoríme vtedy, ak administrátor nastaví politiku v závislosti od konfigurácie cieľového servra alebo skupiny serverov (napr. politika pre všetky SQL 2005 servre vo verzii RTM). Politika sa môže inicializovať v konkrétnom čase alebo vtedy, ak sa zmení konfigurácia spravovaného servera (napr. sa nainštaluje SQL Server 2005 Service Pack 2).

Koncept SQL Server 2008 Policy based management

Pred tým, ako sa bližšie pozrieme na využívanie politík, povieme si niečo o základných stavebných kameňoch Policy based management-u – target, facet, condition, policy, policy group.

Managed target je entita spravovaná nástrojom SQL Server 2008 Policy-based management – a to môže byť databázová inštancia, databáza, tabuľka, procedúra. Target set je množina entít, definovaných filtrom (napr. množina tabuliek patriacich do konkrétnej schémy). Všetky entity sú usporiadané do hierarchie, kde na najvyššom stupni je databázová inštancia.

Management facet je množina logických vlastností definovaná charakteristikou spravovanej entity – napr. Stored Procedure facet je definovaný vlastnosťami uloženej procedúry, Server facet je definovaný vlastnosťami servera atď. V niektorých prípadoch je možné definovať management facet s vlastnosťami viacerých management facetov – napr. Multipart Name facet je definovaný spoločnou vlastnosťou rôznych objektov – v tomto prípade Name – napr. názvom tabuľky, názvom uloženej procedúry, pohľadu a pod.

Condition (podmienka) je Boolean výraz, ktorý špecifikuje vlasnosti management facet-u v kontexte spravovaného objektu (management target). Príkladom môže byť vytvorenie podmienky špecifikujúcej vlastnosť Name Table Facet-u, ktorý by mal mať hodnotu začínajúcu na „T_“. Túto podmienku môžeme aplikovať na tabuľku.

Policy (politika) je kombináciou podmienky a jej očakávaného správania sa (execution mode or tagets). Policy môžeme zakázať alebo povoliť a  môže obsahovať iba jednu podmienku.

Policy Group (skupina politík) umožňuje administrátorom logické zoskupovanie politík do skupín (napr. pre všetky politky pre SQL 2000 je možné vytvoriť samostatnú skupinu, resp. pre politiky platné pre databázu AdventureWorks vytvoriť tiež samostatnú skupinu).

Používanie politík

Ako sme už spomenuli vyššie, administrátori môžu politiky používať v niektorom z dvoch režimov:

  • Ad hoc režim – tento spôsob používania politiky sa využíva pri tzv. explicitnej administrácii a administrátor si môže vybrať z dvoch možnosti:
    • Check - v tomto prípade administrátor explicitne kontroluje súlad politiky s aktuálnou konfiguráciou kontrolovaného servera, to znamená, že na kontrolovanom servri nie sú vynútené žiadne zmeny konfigurácie (politika slúži len na reportovanie porovnania aktuálnej konfigurácie servera s pravidlami definovanými v politike)
    • Configure – v tomto prípade si administrátor vynúti zmenu konfigurácie cieľového servrera tak, aby konfigurácia bola zosúladená s definovanou politikou. V prípade, že zmena konfigurácie nemôže byť z nejakého dôvodu zrealizovaná, zobrazí sa kritické hlásenie oznamujúce zlyhanie vynútenia zmeny konfigurácie kontrolovaného servera
  • Automatický režim – pri využívaní tohto režimu má administrátor nasledovné možnosti:
    • Režim Enforce umožňuje okamžitú aktiváciu politiky na špecifikovaných serveroch s tým, že v prípade potreby aplikuje pravidlá na zmenu konfigurácie. Ak zmenu konfigurácie nie je možné dosiahnuť, tak sa vygeneruje chybové hlásenie upozorňujúce na nesúlad konfigurácie servera s pravidlami definovanými v politike. V tomto režime sa na realizáciu politík využívajú DDL triggre.
    • Check on Changes – pri využívaní tejto možnosti je politika aktivovaná až v prípade zmeny konfigurácie kontrolovaného servra
    • Check on schedule – záverečná možnosť aktivuje politiky v naplánovaných časoch. Pre plánovanie kontroly sa využíva služba SQL Server Agent.

O efektívnej politike môžeme hovoriť vtedy, ak sú splnené nasledovné podmienky:

  • Politika musí byť aktivovaná
  • Kontrolovaný server (alebo skupina serverov) musí patriť do management target set definovaného pre politiku
  • Kontrolovaný server alebo jeden z jeho ... v hierarchii musí byť subscribed do skupiny politík pre danú politiku.

Toľko zatiaľ teória o SQL Server 2008 Policy Based Management. Pozrime sa teraz na politiky z praktickejšej stránky – novembrové vydanie CTP verzie SQL Server 2008 už obsahuje množstvo preddefinovaných facetov, podmienok a politík, ktoré môžeme vidieť na obrázkoch č. 1, 2 a 3:

clip_image002

Obr. č. 1 – zobrazenie facets v SQL Server Management Studiu

clip_image004

Obr. č. 2 – zobrazenie podmienok v SQL Server Management Studiu

clip_image006

Obr. č. 3 – zobrazenie politík v SQL Server Management Studiu

clip_image007

Zobrazené politiky môžeme využiť v najrôznejších scenároch – jeden z takých scenárov môže byť napr. kontrola alebo zabezpečenie využívania Windows password policy (v prípade Windows domény Group policy) na skupine SQL Serverov v našej organizácii. Keďže na takúto kontrolu už máme politiku predpripravenú, stačí ju len využiť a otestovať (všimnime si, že politiky sú zakázané a ak ich chceme využívať, musíme ich najprv povoliť). Politiku môžeme otestovať aj keď je zakázaná – a to tak, že klikneme pravým tlačítkom myši na požadovanú politiku a z kontextového menu vyberieme položku Test Policy ..., ako je to znázornené na obrázku č. 4.

Následne sa nám zobrazí okno, v ktorom môžeme pozorovať priebeh a výsledok spustenia politiky (v tomto prípade na našom lokálnom servri). Všimnime si možnosť spustenia politiky v režime kontroly (tlačítko Check vpravo) alebo v režime konfigurácie (tlačítko Configure vpravo).

clip_image008

clip_image010

Obrázok č. 5 – zobrazenie výsledku kontroly politiky.

Na obrázku č. 5 môžeme vidieť výsledok našeho testu – len jeden login z kontrolovanej inštancie je nastavený na využívanie password policy, zvyšných 5 loginov túto možnosť nevyužíva.

Ak by boli požiadavky bezpečnostného oddelenia striktne definované tak, že každý login musí využívať Windows password policy, tak máme možnosť využiť tlačítko Configure a vynútiť si tak zmenu na všetkých loginoch, ktoré doteraz túto vlastnosť nevyužívali.

Čo dodať na záver ? Sila tohoto nástroja spočíva nielen v tom, že je možné tieto politiky exportovať/nasadiť aj na viacej serverov (čím najviac získajú firemní administrátori, ktorí spravujú väčšie množstvo SQL serverov), ale aj v tom, že tento nástroj je v podstate naozaj framework a administrátori môžu v spolupráci s vývojármi vytvoriť vlastný .NET kód a vytvárať tak vlastné politiky. Bohužiaľ aktuálne je tento nástroj využiteľný len pre databázový engine, t.j. zatiaľ nie je možné spravovať ostatné komponenty SQL Server 2008, ako napr. Analysis Services a pod.

- Karol Papaj, SQL Server MVP