Miroslav Holec
Premium

Nastavení firewallu na úrovni SQL Databáze

Miroslav Holec   25. září 2017

Tento článek je již zastaralý. Článek nemusí popisovat aktuální stav technologie, ideální řešení a můj současný pohled na dané téma.

V prostředí Microsoft Azure lze nastavovat pravidla přístupu z IP adres do SQL databáze buď přímo na úrovni databáze nebo na úrovni SQL Serveru. V tomto článku se zaměřím na první variantu, čili nastavení pravidel nad konkrétní databází.

Uplatnění pravidel

Pravidla se definují jako seznam rozsahů IP adres, pro které je povolen přístup k databázi. V případě SQL serveru je možné provést nastavení rozsahů přímo v Azure portálu. V případě jednotlivých databází je nutné provést nastavení pomocí SQL.

Pravidla se uplatňují směrem od databáze. Znamená to, že pokud je daná adresa povolena na databázi, je provoz povolen. Pokud adresa na databázi není povolena (například vůbec nemáme nastaveny rozsahy), pak se prohledávají pravidla pro celý SQL server. Pokud ani na této úrovni není daná IP adresa nalezena, pak je přístup zamítnut. Dobře je to vidět z následujícího obrázku:

Firewall Rules on Database

Přehled aktuálních pravidel

Pro přehled všech aktuálních pravidel lze použít dotaz:

SELECT * FROM sys.database_firewall_rules

Pokud dotaz nevrátí žádné řádky, jednoduše žádné IP adresy nejsou na seznamu povolených a o přístupu rozhodují pravidla na SQL serveru.

Nastavení nových pravidel

Pro přidání nových pravidel slouží uložená procedura:

EXEC sp_set_database_firewall_rule N'AllowAll', '0.0.0.0', '255.255.255.255'

Odstranění pravidla

Smazat pravidlo lze opět pomocí uložené procedury

EXEC sp_delete_database_firewall_rule N'AllowAll'

Přestože pravidla na úrovni SQL serveru je pohodlné nastavovat přímo v Azure portálu, stejně tak je možné zůstat u tradičního SQL. Ke změnám lze použít některou z uložených procedur nebo připravených view.

Přehled příkazů z dokumentace:

T-SQL příkazy pro práci s firewallem