CONTAINED databázy

V na­šom pre­doš­lom člán­ku sme sa ve­no­va­li in­šta­lo­va­niu SQL De­na­li v naj­ak­tuál­nej­šom CTP. Ta­kis­to sme opí­sa­li, ako si prip­ra­viť tes­to­va­cie pros­tre­die spo­lu so vzo­ro­vý­mi da­ta­bá­za­mi. Ten­to­raz prej­de­me k opi­su no­vi­niek v ob­las­ti ma­na­žo­va­nia.

SQL_Denali OBR01.jpg

Obr. 1 Al­go­rit­mus ove­ro­va­nia v con­tai­ned da­ta­bá­ze

Pr­vý kom­po­nent, kto­rým sa bu­de­me za­obe­rať, je ob­siah­nu­tá da­ta­bá­za – Con­tai­ned Da­ta­ba­se. Con­tai­ned Da­ta­ba­se ob­sa­hu­je všet­ky da­ta­bá­zo­vé nas­ta­ve­nia a me­ta­dá­ta pot­reb­né na jej de­fi­no­va­nie a ne­má ni­ja­ké kon­fi­gu­rač­né zá­vis­los­ti od in­štan­cií da­ta­bá­zo­vé­ho SQL server­a, na kto­rom je da­ta­bá­za nain­šta­lo­va­ná.

SQL_Denali OBR02.jpg

Obr. 2 Po­vo­le­nie con­tai­ned auten­ti­fi­ká­cie z prí­ka­zo­vé­ho riad­ka

Pou­ží­va­te­lia sa mô­žu v da­ta­bá­ze auten­ti­fi­ko­vať aj bez nut­nos­ti auten­ti­fi­ká­cie na SQL server­i. To­to izo­lo­va­nie da­ta­bá­zy od in­štan­cie SQL server­a vý­raz­ne uľah­čí jej pre­sun na iný da­ta­bá­zo­vý server. Pred­stav­me si nas­le­du­jú­cu si­tuáciu: Má­me na­sa­de­nú ap­li­ká­ciu, kto­rá pou­ží­va tra­dič­nú da­ta­bá­zu. Pre­sun ta­kej­to da­ta­bá­zy na iný server sa skom­pli­ku­je, pre­to­že kom­po­nen­ty špe­ci­fic­ké pre da­nú ap­li­ká­ciu (ako nap­rík­lad server­ov­é lo­gi­ny, jo­by SQL Server Agen­ta, vlas­tné chy­bo­vé hlá­se­nia, lin­ko­va­né server­y, sys­té­mo­vé nas­ta­ve­nia a pod.) sú ulo­že­né mi­mo da­ta­bá­zy, kto­rú chce­me pre­sú­vať. Ok­rem pre­su­nu da­ta­bá­zy bu­de­me mu­sieť vy­ko­nať ča­so­vo a ad­mi­nis­trač­ne ná­roč­né do­da­toč­né kro­ky. Me­dzi ne mô­žu pat­riť nap­rík­lad nas­le­du­jú­ce úko­ny:

- Vy­tvo­re­nie prih­la­so­va­cích úč­tov na da­ta­bá­zo­vom server­i
- „Na­ma­po­va­nie“ server­ov­ých úč­tov na úč­ty da­ta­bá­zo­vých pou­ží­va­te­ľov
- Sko­pí­ro­va­nie jo­bov z msdb da­ta­bá­zy pô­vod­né­ho da­ta­bá­zo­vé­ho server­a na no­vý
- Nas­ta­ve­nie a od­la­de­nie spúš­ťa­nia jo­bov pros­tred­níc­tvom pro­duk­čnej ap­li­ká­cie
- Na­lin­ko­va­nie server­ov a nas­ta­ve­nie ich za­bez­pe­če­nia
- Vy­tvo­re­nie chy­bo­vých hlá­se­ní v mas­ter da­ta­bá­ze

SQL_Denali OBR03.jpg

Obr. 3 Po­vo­le­nie con­tai­ned auten­ti­fi­ká­cie cez vlas­tnos­ti server­a

Ako sme už uvied­li, con­tai­ned da­ta­bá­za všet­ky tie­to „mi­mo­da­ta­bá­zo­vé“ kom­po­nen­ty ob­sa­hu­je, a pre­to je jej pre­sun na inú in­štan­ciu SQL server­a jed­no­du­chý a pro­duk­čná da­ta­bá­za je tak­mer okam­ži­te dos­tup­ná. Na ob­ráz­ku 1 vi­dí­me kom­plet­ný al­go­rit­mus auten­ti­fi­kač­né­ho pro­ce­su a za­bez­pe­če­nia prís­tu­pu na con­tai­ned da­ta­bá­zu. Pred vy­tvo­re­ním con­tai­ned da­ta­bá­zy vy­svet­lí­me naj­čas­tej­šie ter­mí­ny, kto­ré ma­jú vzťah k tej­to prob­le­ma­ti­ke.

- Ap­pli­ca­tion boun­da­ry – lo­gic­ká hra­ni­ca me­dzi ap­li­kač­ným mo­de­lom a in­štan­ciou SQL server­a; fun­kcie ap­li­kač­né­ho mo­de­lu sú v rám­ci hra­níc ap­li­ká­cie, fun­kcie in­štan­cie sú mi­mo hra­níc ap­li­ká­cie
- Con­tai­ned – pou­ží­va­teľ­ská en­ti­ta na­chá­dza­jú­ca sa kom­plet­ne v rám­ci hra­níc ap­li­ká­cie
- Un­con­tai­ned – pou­ží­va­teľ­ská en­ti­ta prek­ra­ču­jú­ca hra­ni­ce ap­li­ká­cie
- Non-con­tai­ned da­ta­ba­se – da­ta­bá­za s nas­ta­ve­ním at­ri­bú­tu con­tain­ment na hod­no­tu NONE; všet­ky da­ta­bá­zy pred­chá­dza­jú­cich ver­zií SQL server­a sú non-con­tai­ned; všet­ky da­ta­bá­zy SQL De­na­li ma­jú vý­cho­dis­ko­vé nas­ta­ve­nie at­ri­bú­tu con­tain­ment na hod­no­te NONE
- Ful­ly con­tai­ned da­ta­ba­se – ta­ká­to da­ta­bá­za neu­mož­ňu­je pou­ží­va­nie akých­koľ­vek ob­jek­tov ale­bo fun­kcií, kto­ré by prek­ra­čo­va­li hra­ni­ce ap­li­ká­cie; mo­men­tál­ne ne­mož­no pou­ží­vať ten­to re­žim – po­čí­ta sa s ním vo vy­šších CTP a v os­trej ver­zii SQL De­na­li
- Par­tial­ly con­tai­ned da­ta­ba­se – ta­ká­to da­ta­bá­za umož­ňu­je pou­ží­va­nie kom­po­nen­tov prek­ra­ču­jú­cich hra­ni­ce ap­li­ká­cie; je to ak­tuál­ne je­di­ný dos­tup­ný re­žim con­tai­ned da­ta­bá­zy
- Con­tai­ned user – sú dva ty­py pou­ží­va­te­ľov con­tai­ned da­ta­bá­zy:
- Con­tai­ned da­ta­ba­se user with password – pou­ží­va­teľ auten­ti­fi­ko­va­ný auten­ti­fi­ká­ciou SQL v da­ta­bá­ze
- Win­dows prin­ci­pals – auto­ri­zo­va­ný pou­ží­va­teľ ale­bo člen sku­pi­ny Win­dows pri­pá­ja­jú­ci sa pria­mo do da­ta­bá­zy bez nut­nos­ti exis­ten­cie lo­gi­nu v da­ta­bá­ze mas­ter; ten­to typ lo­gi­nu mô­že vy­tvá­rať zá­vis­losť od in­štan­cie SQL server­a, pre­to pou­ží­va­nie ta­kých­to en­tít spo­loč­nosť Mic­ro­soft neod­po­rú­ča

SQL_Denali OBR04.jpg
Obr. 4 Prep­nu­tie da­ta­bá­zy do re­ži­mu Par­tial­ly Con­tai­ned


Pred vy­tvo­re­ním con­tai­ned da­ta­bá­zy mu­sí­me po­vo­liť ten­to typ auten­ti­fi­ká­cie na server­i. Zreali­zu­je­me to spus­te­ním sys­té­mo­vej ulo­že­nej pro­ce­dú­ry sp_con­fi­gu­re (obr. 2):

sp_con­fi­gu­re 'show ad­van­ced', 1
RE­CON­FI­GU­RE
GO
sp_con­fi­gu­re 'con­tai­ned da­ta­ba­se aut­hen­ti­ca­tion', 1
RE­CON­FI­GU­RE
GO
sp_con­fi­gu­re 'show ad­van­ced', 0
RE­CON­FI­GU­RE
GO   

SQL_Denali OBR05.jpg

Obr. 5 Vy­tvo­re­nie pou­ží­va­te­ľov v con­tai­ned da­ta­bá­ze

Nas­ta­ve­nie je dos­tup­né aj cez gra­fic­ké pou­ží­va­teľ­ské roz­hra­nie nás­tro­ja SQL Server Ma­na­ge­ment Stu­dio pros­tred­níc­tvom po­lož­ky vlas­tnos­tí server­a (obr. 3). Keď po­vo­lí­me auten­ti­fi­ká­ciu, mô­že­me zme­niť tra­dič­nú da­ta­bá­zu na con­tai­ned da­ta­bá­zu. Ove­re­ný spô­sob je spus­te­nie prí­ka­zu t-SQL:

USE [mas­ter]
GO
AL­TER DA­TA­BA­SE [Ad­ven­tu­reWorks2008R2] SET CON­TAIN­MENT = PAR­TIAL
GO

SQL_Denali OBR06.jpg

Obr. 6 Neús­peš­né a ús­peš­né pri­po­je­nie cez SQLCMD.EXE

V ap­li­ká­cii SQL Server Ma­na­ge­ment Stu­dio mô­že­me po­mo­cou kon­texto­vej po­nu­ky zob­ra­ziť vlas­tnos­ti prís­luš­nej da­ta­bá­zy. Na po­lož­ke Op­tions mô­že­me zme­niť Con­tain­ment Ty­pe z hod­no­ty None na hod­no­tu Par­tial (obr. 4). V tak­to zme­ne­nej da­ta­bá­ze si mô­že­me na tes­to­va­cie úče­ly vy­tvo­riť pou­ží­va­te­ľov, kto­rí ne­bu­dú auten­ti­fi­ko­va­ní op­ro­ti úč­tom v da­ta­bá­ze mas­ter, ale bu­dú mať všet­ko pot­reb­né za­de­fi­no­va­né v kon­krét­nej da­ta­bá­ze. Na vy­tvo­re­nie con­tai­ned pou­ží­va­te­ľov za­dá­me do prí­ka­zo­vé­ho ok­na ap­li­ká­cie SQL Server Ma­na­ge­ment Stu­dio nas­le­du­jú­ci kód:

USE Ad­ven­tu­reWorks2008R2
GO
CREA­TE USER In­foware_User
WITH PASSWORD = 'H3sl0123!'
GO
CREA­TE USER [IN­FOWARE\Pe­ter]
GO

Na ob­ráz­ku 5 vi­dí­me vý­stup po ús­peš­nom spus­te­ní uve­de­né­ho prí­ka­zu. Ta­kis­to si mô­že­me všim­núť, že na­ľa­vo v zoz­na­me úč­tov vy­tvo­re­ných na server­i ne­fi­gu­ru­je ni­ja­ký účet In­foware_User ani pou­ží­va­teľ Pe­ter či sku­pi­na, do kto­rej by mo­hol pat­riť. Pri­po­je­nie sa pod con­tai­ned pou­ží­va­te­ľom bu­de vy­ža­do­vať expli­cit­né uve­de­nie zdro­jo­vej da­ta­bá­zy. Ak sa prih­lá­si­me ako pou­ží­va­teľ Pe­ter a po­kú­si­me sa pri­po­jiť na SQL server po­mo­cou nás­tro­ja SQLCMD.EXE, pri­po­je­nie na server zly­há. No ak po­mo­cou pre­pí­na­ča –d ur­čí­me cie­ľo­vú da­ta­bá­zu, pri­po­je­nie sa vy­tvo­rí ús­peš­ne. Vý­stup z oboch prí­ka­zov vi­dí­me na ob­ráz­ku 6. Na con­tai­ned da­ta­bá­zu sa mô­že­me prih­la­so­vať aj pros­tred­níc­tvom ap­li­ká­cie SQL Server Ma­na­ge­ment Stu­dio. Ok­rem ur­če­nia server­a a auten­ti­fi­ká­cie však mu­sí­me na kar­te Con­nec­tion Pro­per­ties ur­čiť cie­ľo­vú da­ta­bá­zu. Obe kar­ty na prih­lá­se­nie pou­ží­va­te­ľa In­foware_User vi­dí­me na ob­ráz­ku 7. Po prih­lá­se­ní má con­tai­ned pou­ží­va­teľ dos­tup­nú iba da­ta­bá­zu, v kto­rej je de­fi­no­va­ný, a sys­té­mo­vé da­ta­bá­zy mas­ter a tempdb (obr. 8). Sys­té­mo­vé da­ta­bá­zy sú dos­tup­né iba vďa­ka to­mu, že me­dzi pou­ží­va­teľ­mi tých­to da­ta­báz exis­tu­je pou­ží­va­teľ guest v ak­tív­nom sta­ve. V con­tai­ned da­ta­bá­ze má pou­ží­va­teľ In­foware_User ta­ké op­ráv­ne­nia, aké mu správ­ca da­ta­bá­zy pri­de­lí. Pre­nos ta­kej­to da­ta­bá­zy na iný SQL server (sa­moz­rej­me ver­zie De­na­li) bu­de vý­raz­ne zjed­no­du­še­ný.

SQL_Denali OBR07.jpg

Obr. 7 Prih­lá­se­nie con­tai­ned pou­ží­va­te­ľa v gra­fic­kom nás­tro­ji

SQL_Denali OBR08.jpg

Obr. 8 In­foware_User má dos­tup­nú iba jed­nu da­ta­bá­zu


Harmath copy.jpg Alexan­der Har­math
sa­noh@cit.sk

Zdroj: Infoware 3/2011



Ohodnoťte článok:
   
 

24 hodín

týždeň

mesiac

Najnovšie články

Kon­fi­gu­rá­cia vy­so­kej dos­tup­nos­ti / 1. časť
V našom článku načrtneme možnosti konfigurácie, ktoré umožňujú zabezpečiť vysokú dostupnosť služieb elektronickej pošty v prostredí Exchange Server 2010. čítať »
 
Prog­ra­mu­je­me gra­fic­ký en­gi­ne XXXIV.
V tejto časti seriálu vám v stručnosti predstavíme tzv. systémy častíc (particle systems). Kvalitne navrhnutými systémami častíc dokážeme veľmi rýchlo a elegantne zvýšiť dynamiku grafických aplikácií. čítať »
 
CON­TAI­NED da­ta­bá­zy
V našom predošlom článku sme sa venovali inštalovaniu SQL Denali v najaktuálnejšom CTP. Takisto sme opísali, ako si pripraviť testovacie prostredie spolu so vzorovými databázami. čítať »
 
Ko­niec ad­res­né­ho pries­to­ru IPv4 inter­ne­tu
Začiatkom februára nastáva veľký deň D pre súčasný internet. Každé zariadenie – či už na internete, alebo v lokálnej sieti – má jednoznačnú L3 adresu, a keďže sa vo svete presadil protokol IP, je to adresa IPv4, zapísaná v 4 oktetoch. čítať »
 
Op­ti­ma­li­zá­cia dá­to­vé­ho skla­du - Spoz­ná­va­me BI: 9. časť
Modelovanie dát dátového skladu je zvláštna disciplína, v rámci ktorej denormalizujeme štruktúry na lepší výkon, aby sme potom z tejto denormalizácie urobili normu a z nej zase výnimky. čítať »
 
Ro­zum­né fi­nan­co­va­nie v IT
Aj napriek oživeniu trhu je opatrnosť a rozumný prístup k použitiu finančných prostriedkov stále na mieste. čítať »
 
IT je vý­hod­nej­šie vy­uží­vať ako vlas­tniť
O lízing informačných technológií akoby na Slovensku ani nebol záujem. Predstavuje menej ako jedno percento z celkovej hodnoty prefinancovaných hnuteľných vecí čítať »
 
In­teg­rá­cia ko­mu­ni­kač­ných mé­dií
Podstatou každej komunikačnej technológie je odstránenie ­bariér. Telefónne systémy napríklad odstránili prekážku v podobe vzdialenosti medzi ľuďmi, čítať »
 
 
 
  Zdieľaj cez Facebook Zdieľaj cez Google+ Zdieľaj cez Twitter Zdieľaj cez LinkedIn Správy z RSS Správy na smartfóne Správy cez newsletter