Relační databáze v Azure – SQL

3. 5. 2021 Azure, IT Pro

V dnešní době se databáze používají všude kolem nás. Najdete je v obchodech, školách, firmách, na e-schopech nebo třeba ve hrách. Microsoft Azure si je toho vědom, a proto vytvořil několik služeb pro práci s databázemi. Jedna z nich je Azure SQL Database. V tomto článku se dovíte, co tato služba je a jak si v ní vytvořit jednoduchou databázi.

Technické a znalostní požadavky

Co je služba Azure SQL Database

Azure SQL Database je cloudová služba modelu PaaS (platform-as-a-service). To znamená, že Azure se stará o to, aby tato služba byla vždy aktualizovaná, opravuje chyby a sama vytváří zálohy. Díky tomuto modelu se můžete zaměřit pouze na vaše vlastní databáze a nestarat se o údržbu. Služba Azure SQL Database vždy využívá nejnovější stabilní verzi Microsoft SQL Server pro práci s databázemi a nabízí hned několik nasazovacích i platebních modelů, aby si každý mohl vybrat to, co mu vyhovuje. Díky jejímu vysokému výkonu, dostupnosti, spolehlivosti a zabezpečení je to skvělá volba pro práci s aplikacemi, webovkami nebo systémy, které potřebují ke svému chodu data.

Jak vytvořit databázi SQL v Azure

Po přihlášení do vašeho Azure portálu si ve vyhledávacím políčku uprostřed horní lišty vyhledejte SQL databases a zvolte příslušnou ikonu. To vás přesune do domovské nabídky této služby.

Vyhledání služby ve vyhledávacím políčku v Azure portálu.
Vyhledání služby v portalu Azure | Zdroj: Azure Portal

Pokud jsou s vašim účtem již nějaké databáze provázané, budou zde vypsané. Pokud jste však s touto službou ještě nepracovali, žádná se ve výpisu nacházet nebude. Pro vytvoření nové databáze zvolte tlačítko Add, které se nachází hned pod názvem služby.

Přidání nové databáze v domovské nabídce tlařítkem Add.
Přidání nové databáze | Zdroj: Azure Portal

Po stiknutí tlačítka budete přesměrování do formuláře pro vytvoření databáze. Na výběr nastavení máte hned 6 karet. Teď se budete pohybovat na kartě Basics.

Karta Basics

Na této kartě se nachází 7 políček pro vyplnění, které jsou rozdělené do 2 odstavců – Project DetailsDatabase details. Každé políčko vám zde podrobně vysvětlím.

Project details

Ukázka prázdného odstavce Project details na kartě Basics.
Odstavec Project details | Zdroj: Azure Portal

Subscription je předplatné, které využíváte pro práci v Azure. Všechny služby v rámci jednoho předplatného jsou účtovány společně. Pokud jste student, zvolte zde možnost Azure pro studenty. Pokud studenty nejste, zvolte předplatné, které vám bylo přiděleno.

Resource group je funkce, která používané služby rozděluje do skupin. Služby se do těchto skupin obvykle rozdělují na základě kritérií jako jsou jejich společná práva nebo jsou součástí jednoho lifecycle. Každá služba musí být v nějaké resource group. Pokud nemáte vytvořenou skupinu, klikněte na Create new, kde zadáte pouze jméno, které se nesmí shodovat s názvem jiné resource group.

TIP: Dopuručuju vám si pro testovaní vytvářet oddělené skupiny. Nebudou se vám tak nové a nevyzkoušené služby motat do již funkčních a jejich případné smazání bude jednodušší. Pokud však chcete danou službu rovnou implementovat, tak ji můžete klidně do jiné skupiny přidat.

Database details

Ukázka prázdného odstavce Database details zna kartě Basics.
Odstavec Database details | Zdroj: Azure Portal

Database name je název vaší nové databáze. Název této databáze musí mít méně než 128 znaků, nesmí obsahovat žádné speciální znaky a na serveru se nesmí nacházet databáze se stejným názvem.

Server slouží ke zvolení serveru, na kterém bude databáze běžet. Pokud takový server máte již vytvořený, stačí ho vybrat z nabídky. Pro vytvoření nového serveru stiskněte Create new. Tím se vám zobrazí nabídka pro vytvoření serveru.

Configure database
Formulář pro nový server | Zdroj: Azure Portal

Server name je pole obsahující název serveru. Pro název serveru jsou poměrně striktní požadavky. Mezi ty patří, že název se smí skládat pouze z malých písmen nebo čísel, smí obsahovat pomlčku (-) a nesmí existovat žádný jiný server se stejným jménem.

Server admin login je přihlašovací jméno, pod kterým se budete přihlašovat vy, jakožto administrátor/správce této databáze. Jméno se nesmí podobat názvu databáze, obvyklým jménům jako admin nebo administrator nebo SQL identifikátorům. Může obsahovat pouze alfanumerické znaky (malá a velká písmena, čísla, pomlčky, hvězdy, tečky, podtržítka,…) a musí začínat písmenem.

Password slouží pro zadání heslo pro přihlášení jako předem specifikovaný administrátor. Jsou zde 4 další restrikce a to že heslo musí mít minimálně 8 znaků, nesmí být podobné přihlašovacímu jménu administrátora, musí být kratší než 128 znaků a musí obsahovat znaky ze tří následujících kategorií – malá písmena a velká písmena anglické abecedy, čísla nebo speciální znaky. Po password následuje pole Confirm password, kde zadané heslo opíšete.

Location je posledním políčkem v tomto výběru. Je to lokace serveru. Myslete na to, že by se server měl nacházet co nejblíže k vám, abyste měli co nejmenší odezvu. Na lokaci serveru však závisí také cenu nebo množství dostupných služeb.

TIP: Pokud se zatím nevyznáte v těchto lokacích, tak doporučuji zvolit West Europe. Tato možnost bývá nejlevnější a datacentrum se nachází v Nizozemí, které od Česka není moc daleko.

Nyní pomocí tlačítka Ok pod formulářem server vytvoříte a vrátíte se na kartu Basics, kde vás čekají dvě poslední možnosti.

Compute and storage settings

Ukázka posledních dvou polí na kartě Basics.
Poslední pole z karty Basics | Zdroj: Azure Portal

Elastic pool je naší další možností, která následuje po vytvoření serveru. SQL elastic pool je funkce, která slouží pro práci s více databázemi v rámci jedné služby. Díky ní všechny databáze využívají stejný server, tudíž se dá lépe kontrolovat jejich používané zdroje. Pro naší jednu jednoduchou databázi necháme tuto funkci vypnutou – zvolíme No.

Compute + storage je poslední možností na kartě Basics. To však vůbec neznamená, že je nepodstatná. Pomocí této možnosti si můžete nastavit úložiště a výpočetní výkon vašeho serveru pro databázi. Pro nastavení vyberte možnost Configure database.

Ukázka konfiguračního menu pro nový server.
Konfigurace serveru | Zdroj: Azure Portal
Configure server

V této nabídce se nacházejí 2 základní modely a to DTU-basedvCore-based. Oba vám teď v rychlosti shrnu a popíšu.

DTU-based purchase model vychází ze základní jednotky DTU (Database Transaction Unit) pro jednu databázi a eDTU pro SQL elastic pool. Jsou zde na výběr 3 úrovně – Basic, Standard, Premium. U tohoto modelu nastavujete právě počet DTU a maximální velikost ukládaných dat. Tato možnost je vhodná pro ty, kteří chtějí jednoduché a předdefinované možnosti při vytváření databází.

vCore-based purchase model je oproti předchozímu modelu plně konfigurovatelný. Na výběr jsou zde opět 3 úrovně – General Purpose, Hyperscale, Premium. Tento model vychází z vCores (virtual cores) a přináší možnost výběru mezi generacema hardwaru a fyzickou strukturou hardwaru jako počet jader, paměť nebo úložiště. Obecně se tento modul doporučuje více než DTU-based, ale mějte na paměti, že zde je mnoho možných konfigurací a plného potenciálu dosáhnete pouze plným pochopením a dobrou znalostí tohoto modelu.

Upozornění: Nezapomeňte že neplatíte pouze za výpočetní výkon databáze, ale také za uložená data. I přesto, že nikdo nebude databázi využívat, tak budete platit za uložení dat.

Pro tento příklad si zvolím ve vCore-base purchase model úroveň General Purpose, možnost Serverless, Max vCores nastavím na 1Min vCores na 0.5, Auto-pause delay si nastavením na hodinu a Data max size na 1 GB. Toto nastavení jsem si zvolil, protože pro tuto ukázku mi bude stačit nízký výpočetní výkon a díky tomuto nastavení se dostaneme na cenu 0.15 EUR/měsíc za úložiště a 0.000134 EUR/sekundu používání výpočetního výkonu. Moje nastavení po výběru úrovně General Purpose vypadá následovně. Po nastavení vašeho severu klikněte na tlačítko Apply, které se nachází v levém spodním rohu. To vás přesune zpět do okna tvorby databáze.

Příkladná konfigurace Vašeho nového serveru.
Příkladná konfigurace serveru | Zdroj: Azure Portal

V tuto chvíli máte nastavené vše, co se nachází na kartě Basics. Můžeme se přesunout na další kartu Networking pomocí horní lišty nebo bílého tlačíka pod formulářem Next: Networking.

Příklad vyplněné karty Basics.
Vyplněná karta Basics | Zdroj: Azure Portal

Karta Networking

Na kartě Networking se nachází síťová nastavení. Nachází se zde konfigurace připojení a 2 pravidla pro firewall vaší databáze.

Network connectivity

Connectivity method slouží ke zvolení způsobu přístupu k vaší sql databázi. Zda se budeme připojovat přes veřejný endpoint (veřejné IP adresy) nebo soukromý endpoint (privátní IP adresy ve vaší virtuální síti). Pro naší databázi zvolíme připojení přes Public endpoint. Po této volbě nám vyskočí další dva přepínače a odstavec Firewall rules.

Firewall rules

První z nich je Allow Azure services and resources to access this server, které povolí nebo zakáže vašim službám používat tento server. Moje databáze slouží pouze jako ukázka a nebude dále využívaná k žádným účelům, proto zvolím No.

Druhá možnost je Add current client IP address. Pokud tuto možnost povolíte, tak vaši momentální veřejnou IP adresu firewall pustí k vaší databázi. Pokud víte, že k databázi budete přistupovat z tohoto zařízení tak tuto možnost můžete povolit. Já ji však prozatím zamítnu, abychom si ukázali, jak později přidat více IP adres.

Nyní se můžeme posunout dál na kartu Security pomocí horní lišty nebo tlačítka Next: Security.

Ukázka vyplněné karty Basics pro Vaší kontrolu.
Vyplněná karta Basics | Zdroj: Azure Portal

Karta Security

Karta Security je nejnovější karta pro vytváření Azure SQL Database, proto se v ní prozatím nachází pouze jedna možnost.

Azure Defender for SQL

Azure Defender for SQL je jedna z mnohých ochran pro vaši databázi, které Azure nabízí. Dodává pokročilé vyhledávání a eliminování hrozeb, poskytuje bezpečností výpisy a doporučení. Pokud plánujete tyto databáze používat pro ukládání důležitých a zranitelných dat, rozhodně doporučuji tuto funkci využít. Prvních 30 dní je zdarma a po jejich uplynutí platíte každý měsíc určitou částku za každý server, který Azure Defender for SQL brání. Tato data fungují pouze jako ukázka, proto tuto funkci nechám vypnutou. Také je důležité zmínit, že pokud tuto službu aktivujete, vytvoří se také úložiště, kde bude Azure Defender ukládat bezpečnostní posouzení. Pokud již používáte Azure Defender u jiné služby, bude využívat to stejné úložiště.

Dále se přesuňte na další kartu Additional settings pomocí horní lišty nebo tlačítka Next: Additional settings.

Ukázka karty s nastavením zabezpečení pomocí Azure Defender fro SQL.
Karta o ochraně databáze | Zdroj: Azure Portal

Additional settings

Additional settings slouží pro připravení serveru na ukládání dat a nastavení ochrany pomocí Azure Defender. Tyto možnosti jsou rozděleny do tří odstavců a to Data source, Database collationAzure Defender for SQL.

Data source

Hned první možnost Data source slouží pro prvotní import dat. Na výběr máte None, Backup nebo Sample. None vám neimportuje nic, Backup slouží pro duplikování dat z již existující databáze. Já pro tento příklad využiji možnost Sample, která mi načte předpřipravená data od Azure.

Database collation

Další možnost je Database collation. To jsou pravidla, podle kterých se slovní data a spojení v databázi porovnávají a ukládají. Je zde mnoho možností, a dokonce i čeština má své. Tato možnost se vám odemkne při zvolení None u předešlého výběru. Pro češtinu můžete využít SQL_Czech_CP1250_CI_AS nebo SQL_Czech_CP1250_CS_AS. Jediný rozdíl v jejich názvech – jeden obsahuje CI a druhý CS. CI znamená case-insensitive, což jsou pravidla, která nehledí na velikost písmen. Databáze bude považovat například slova azure a AzUre jako totožná. CS znamená case-sensitive, takže rozlišuje velká a malá písmena. Když zvolíte možnost Sample, tak automaticky bude vybráno základní nastavení a to SQL_Latin1_General_CP1_CI_AS.

Nyní máte vše potřebné nastavené a můžete se přesunout na Review + create opět pomocí horní lišty nebo tlačítka pod formulářem.

Příklad vyplněné karty Additional settings.
Vyplněná karta Additional settings | Zdroj: Azure Portal

Nasazení SQL databáze v Azure

Na kartě Review + create můžete naposledy zkontrolovat všechna nastavení. Jakmile si budete vašimi výběry jistí, můžete stisknout tlačítko Create pod formulářem. Nyní stačí vyčkat, než se vaše databáze vytvoří a server nastaví. To může trvat několik minut.

Ukázka upozornění o nasazování Vaší služby.
Upozornění o nasazování služby | Zdroj: Azure Portal

Po dokončení nasazení vaší služby je potřeba se do ní přesunout. Toho můžete dosáhnout několika způsoby. Tím nejjednodušším je po nasazení vybrat možnost Go to resource, které se objeví v daném upozornění o dokončení nasazení. Dalším způsobem může být její vyhledání v domovské nabídce Azure SQL Database nebo otevřením resource group, ve které se nachází.

Ukázka upozornění po úspěšném nasazení a následný přechod ke službě.
Přechod do služby | Zdroj: Azure Portal

Přístup k databázi

Nyní si ukážeme, jak přidat IP adresy pro přístup do databáze. Bez toho se do ní nedostanete. Pokud jste u tvorby databáze na kartě Networking zatrhli Yes u pole Add current client IP address, tak tento bod můžete přeskočit, protože vaše adresa je již ve firewallu povolena. Pro přidání nové IP adresy zvolte v horní liště možnost Set server firewall.

Ukázka přistupu k nastavení firewallu databáze.
Přistup k nastavení firewallu | Zdroj: Azure Portal

Nastavení firewallu

Zde pro přidání vaší momentální IP adresy stiskněte Add client IP v horní liště. To ji automaticky přidá do seznamu. IP adresu můžete však vepsat i ručně do tabulky. Ve sloupci Rule name pojmenujete pravidlo, které povolí připojení přes danou IP adresu a do sloupců Start IPEnd IP danou IP adresu zapíšete. Po vyplnění obou políček se toto pravidlo ihned přidá do tabulky. Tyto změny před uzavřením musíte uložit pomocí tlačítka Save v horní liště. Po uložení změn se přesuňte zpět do hlavního menu pomocí šedého křížku v pravém horním rohu.

Ukázka přidání pravidla do firewallu pro přistup k databázi.
Nastavení firewallu | Zdroj: Azure Portal

Přihlášení k databázi SQL

Nyní se můžete přihlásit k vaší databázi. Pro přihlášení zvolte z levého menu možnost Query editor (preview) a přihlaste se pomocí vašeho administrátorského účtu, který jste si vytvořili při tvorbě serveru.

Poznámka: Může se stát, že vás firewall nepustí. Bývá to z toho důvodu, že se ještě vaše IP adresa zcela neuložila do pravidel. Tato změna může trvat až 5 minut, tudíž doporučuji počkat. Pokud vás to však nepustí ani po uplynutí 5 minut, zkuste znovu vaší IP adresu přidat pomocí předchozích kroků.

Přihlášení k databázi | Zdroj: Azure Portal

Dotazové prostředí

Nyní jste se úspěšně dostali do editorů dotazu ve vaší nové databázi služby Azure SQL Database. Na levé straně se nachází menu, ve kterém můžete vidět všechny uložené tabulky a pohledy. Uprostřed se nachází textové pole, do kterého můžete zapisovat vaše dotazy. Pamatujte, že tato služba využívá nejnovější verzi SQL server. Po napsání dotazu můžete dotaz spustit pomocí tlačítka Run a výstup dotazu se objeví pod textovým polem na kartě Results.

Ukázka dotazového prostředí pro tvorbu dotazů služby SQL Database.
Dotazové prostředí SQL Database | Zdroj: Azure Portal

Mazání databáze

Pokud budete potřebovat vaší databázi a server smazat, musíte se prvně dostat do vaší resource group, která tyto služby obsahuje. Zde můžete buď smazat celou skupinu, nebo po vybrání služeb pomocí zaškrtávacích polí po jejich levé straně ve výběru, vymazat pouze ty zvolené.

Vybrání databáze a následně její smazání pomocí hlavní lišty.
Mazaní přes resource group | Zdroj: Azure Portal

Po stisknutí tlačítka Delete nebo Delete resource group vás Azure na tuto akci upozornění a požádá o potvrzení. Potvrzujete zapsáním yes, názvu resource group nebo název služby do pole pod upozorněním. Kterou z těchto možností po vás Azure bude vyžadovat je vždy zapsáno šedým písmem v poli. V mém případě stačí zapsat yes. Následně stiskněte tlačítko Delete pod formulářem. Po pár minutách se vybrané služby nebo celá skupina smaže.

Upozornění: Před samotným smazáním si dobře tuto akci promyslete. Všechna uložená data a konfigurace budou smazány. Tuto akci nelze vrátit ani přerušit po potvrzení!

Upozornění s potvrzením smazání databáze pomocí zaškrtávacích polí.
Potvrzení smazání po zvolení pomocí zaškrtávacích polí | Zdroj: Azure Portal

Závěr

Nyní víte, jak si vytvořit svou vlastní databázi pomocí Azure SQL Database! Naučili jste se, jak si nastavit danou databázi a nakonfigurovat server, na kterém se bude nacházet. Zde to však rozhodně nekončí. Existuje mnoho možností, jak tuto službu dále využít nebo nakonfigurovat. Pro další studium mohu doporučit dokumentaci od Microsoftu, kde skvěle popisují každý aspekt služby Azure SQL Database. Stay curious!