Az Azure SQL Database és az Azure Synapse IP-tűzfalszabályai
A következőre vonatkozik: Azure SQL DatabaseAzure Synapse Analytics
Amikor új kiszolgálót hoz létre az Azure SQL Database-ben vagy az Azure Synapse Analyticsben mysqlserver néven, például egy kiszolgálószintű tűzfal blokkolja a kiszolgáló nyilvános végpontjának hozzáférését (amely mysqlserver.database.windows.net érhető el). Az egyszerűség kedvéért az SQL Database és az Azure Synapse Analytics egyaránt használható. Ez a cikk nem vonatkozik a felügyelt Azure SQL-példányokra. A hálózati konfigurációval kapcsolatos információkért tekintse meg az alkalmazás felügyelt Azure SQL-példányba való Csatlakozás.
Megjegyzés:
A Microsoft Entra ID az Azure Active Directory (Azure AD) új neve. Jelenleg frissítjük a dokumentációt.
A tűzfal működése
Csatlakozás internetes és Azure-beli kísérleteknek át kell haladniuk a tűzfalon, mielőtt elérnék a kiszolgálót vagy az adatbázist, ahogy az az alábbi ábrán is látható.
Fontos
Az Azure Synapse csak a kiszolgálószintű IP-tűzfalszabályokat támogatja. Nem támogatja az adatbázisszintű IP-tűzfalszabályokat.
Kiszolgálószintű IP-tűzfalszabályok
Ezek a szabályok hozzáférést biztosítanak az ügyfelek számára a teljes kiszolgálóhoz, azaz a kiszolgáló által felügyelt összes adatbázishoz. A szabályok a fő adatbázisban vannak tárolva. A kiszolgálószintű IP-tűzfalszabályok maximális száma kiszolgáló esetén legfeljebb 128 lehet. Ha engedélyezte A kiszolgáló elérésének engedélyezése az Azure-szolgáltatások és -erőforrások számára beállítást, ez egyetlen tűzfalszabálynak számít a kiszolgálót tekintve.
A kiszolgálószintű IP-tűzfalszabályokat az Azure Portal, a PowerShell vagy a Transact-SQL utasításokkal konfigurálhatja.
Megjegyzés:
A kiszolgálószintű IP-tűzfalszabályok maximális száma 128-ra korlátozódik az Azure Portal használatával történő konfiguráláskor.
- A portál vagy a PowerShell használatához az előfizetés tulajdonosának vagy az előfizetés közreműködőjének kell lennie.
- A Transact-SQL használatához kiszolgálószintű egyszerű bejelentkezésként vagy Microsoft Entra-rendszergazdaként kell csatlakoznia a fő adatbázishoz. (A kiszolgálószintű IP-tűzfalszabályt először egy Azure-szintű engedélyekkel rendelkező felhasználónak kell létrehoznia.)
Megjegyzés:
Alapértelmezés szerint egy új logikai SQL-kiszolgáló Létrehozásakor az Azure Portalról az Azure Services és az erőforrások számára a kiszolgálóbeállítás elérésének engedélyezése nem értékre van állítva.
Adatbázisszintű IP-tűzfalszabályok
Database-level IP firewall rules enable clients to access certain (secure) databases. Minden egyes adatbázishoz (beleértve a fő adatbázist is) létre kell hoznia a szabályokat, és azokat az egyes adatbázisokban tárolja.
- You can only create and manage database-level IP firewall rules for master and user databases by using Transact-SQL statements and only after you configure the first server-level firewall.
- If you specify an IP address range in the database-level IP firewall rule that's outside the range in the server-level IP firewall rule, only those clients that have IP addresses in the database-level range can access the database.
- Az alapértelmezett érték egy adatbázis legfeljebb 256 adatbázisszintű IP-tűzfalszabálya lehet. Az adatbázisszintű IP-tűzfalszabályok konfigurálásával kapcsolatos további információkért tekintse meg a cikk későbbi, sp_set_database_firewall_rule (Azure SQL Database) című cikket.
Javaslatok tűzfalszabályok beállításához
Javasoljuk, hogy lehetőség szerint használjon adatbázisszintű IP-tűzfalszabályokat. This practice enhances security and makes your database more portable. Kiszolgálószintű IP-tűzfalszabályok használata rendszergazdák számára. Akkor is használja őket, ha sok olyan adatbázissal rendelkezik, amelyekre ugyanazok a hozzáférési követelmények vonatkoznak, és nem szeretné egyenként konfigurálni az egyes adatbázisokat.
Megjegyzés:
Az üzletmenet folytonossága és a hordozható adatbázisok közötti kapcsolatról a vészhelyreállítás hitelesítési követelményeitismertető cikkből tájékozódhat.
Server-level versus database-level IP firewall rules
Az egyik adatbázis felhasználóit teljesen el kell különíteni egy másik adatbázistól?
Ha igen, használja az adatbázisszintű IP-tűzfalszabályokat a hozzáférés megadásához. Ez a módszer elkerüli a kiszolgálószintű IP-tűzfalszabályok használatát, amelyek lehetővé teszik a tűzfalon keresztüli hozzáférést az összes adatbázishoz. Ez csökkenti a védelem mélységét.
Az IP-címeken lévő felhasználóknak hozzáférésre van szükségük az összes adatbázishoz?
Ha igen, használja a kiszolgálószintű IP-tűzfalszabályokat az IP-tűzfalszabályok konfigurálásának hányszoros csökkentéséhez.
Az IP-tűzfalszabályokat konfiguráló személy vagy csapat csak az Azure Portalon, a PowerShellen vagy a REST API-on keresztül fér hozzá?
Ha igen, kiszolgálószintű IP-tűzfalszabályokat kell használnia. Az adatbázisszintű IP-tűzfalszabályok csak a Transact-SQL-en keresztül konfigurálhatók.
Az IP-tűzfalszabályokat konfiguráló személy vagy csapat nem rendelkezik magas szintű engedélyekkel az adatbázis szintjén?
Ha igen, használjon kiszolgálószintű IP-tűzfalszabályokat. Legalább CONTROL DATABA Standard kiadás engedélyre van szüksége az adatbázis szintjén az adatbázisszintű IP-tűzfalszabályok Transact-SQL-en keresztüli konfigurálásához.
Az IP-tűzfalszabályokat konfiguráló vagy auditáló személy vagy csapat központilag kezeli az IP-tűzfalszabályokat sok (talán több száz) adatbázis esetében?
Ebben a forgatókönyvben az ajánlott eljárásokat az ön igényei és környezete határozza meg. A kiszolgálószintű IP-tűzfalszabályokat egyszerűbb lehet konfigurálni, de a szkriptelés az adatbázis szintjén konfigurálhatja a szabályokat. Még ha kiszolgálószintű IP-tűzfalszabályokat is használ, előfordulhat, hogy adatbázisszintű IP-tűzfalszabályokat kell naplóznia annak ellenőrzéséhez, hogy az adatbázis CONTROL engedélyével rendelkező felhasználók adatbázisszintű IP-tűzfalszabályokat hoznak-e létre.
Használhatok kiszolgálószintű és adatbázisszintű IP-tűzfalszabályokat?
Igen. Egyes felhasználóknak, például rendszergazdáknak kiszolgálószintű IP-tűzfalszabályokra lehet szükségük. Más felhasználóknak, például egy adatbázis-alkalmazás felhasználóinak is szükség lehet adatbázisszintű IP-tűzfalszabályokra.
Csatlakozás az internetről
Amikor egy számítógép az internetről próbál csatlakozni a kiszolgálóhoz, a tűzfal először ellenőrzi a kérés eredeti IP-címét a kapcsolat által kért adatbázis adatbázisszintű IP-tűzfalszabályai között.
- Ha a cím az adatbázisszintű IP-tűzfalszabályokban megadott tartományon belül van, a kapcsolat a szabályt tartalmazó adatbázishoz lesz adva.
- Ha a cím nem tartozik az adatbázisszintű IP-tűzfalszabályok tartományába, a tűzfal ellenőrzi a kiszolgálószintű IP-tűzfalszabályokat. Ha a cím egy olyan tartományon belül van, amely a kiszolgálószintű IP-tűzfalszabályokban található, a kapcsolat meg lesz adva. A kiszolgálószintű IP-tűzfalszabályok a kiszolgáló által felügyelt összes adatbázisra érvényesek.
- Ha a cím nem az adatbázisszintű vagy kiszolgálószintű IP-tűzfalszabályok egyikében sem található tartományon belül, a kapcsolatkérés meghiúsul.
Megjegyzés:
Az Azure SQL Database helyi számítógépről való eléréséhez győződjön meg arról, hogy a hálózaton és a helyi számítógépen található tűzfal engedélyezi a kimenő kommunikációt az 1433-as TCP-porton.
Csatlakozás az Azure-ban
Ahhoz, hogy az Azure-ban üzemeltetett alkalmazások kapcsolódhassanak az SQL Serverhez, engedélyezni kell az Azure-kapcsolatokat. Az Azure-kapcsolatok engedélyezéséhez rendelkeznie kell egy tűzfalszabálysal, amelynek kezdő és befejező IP-címe 0.0.0.0. Ez az ajánlott szabály csak az Azure SQL Database-ben alkalmazható.
Amikor egy Azure-ból származó alkalmazás megpróbál csatlakozni a kiszolgálóhoz, a tűzfal ellenőrzi, hogy az Azure-kapcsolatok engedélyezve vannak-e a tűzfalszabály meglétének ellenőrzésével. Ez közvetlenül az Azure Portal panelről kapcsolható be úgy, hogy a tűzfalak és a virtuális hálózatok beállításai között bekapcsolja az Azure-szolgáltatások és -erőforrások számára, hogy elérhessék ezt a kiszolgálót. Ha bekapcsolja a beállítást, létrehoz egy bejövő tűzfalszabályt a 0.0.0.0 – 0.0.0.0 nevű AllowAllWindowsAzureIps IP-címhez. A szabály az adatbázis sys.firewall_rules nézetben tekinthető master
meg. Ha nem a portált használja, a PowerShell vagy az Azure CLI használatával hozzon létre egy 0.0.0.0-s kezdő- és végponti IP-címekkel rendelkező tűzfalszabályt.
Fontos
Ez a beállítás úgy konfigurálja a tűzfalat, hogy engedélyezze az Azure-ból érkező összes kapcsolatot, beleértve a többi ügyfél előfizetéséből származó kapcsolatokat is. Ha ezt a lehetőséget választja, győződjön meg arról, hogy a bejelentkezési és felhasználói engedélyek csak a jogosult felhasználók hozzáférését korlátozzák.
Permissions
Az Azure SQL Serverre vonatkozó IP-tűzfalszabályok létrehozásához és kezeléséhez az alábbi szerepkörök egyikével kell rendelkeznie:
- az SQL Server közreműködői szerepkörében
- az SQL Security Manager szerepkörben
- az Azure SQL Servert tartalmazó erőforrás tulajdonosa
Create and manage IP firewall rules
Az első kiszolgálószintű tűzfalbeállítást az Azure Portal használatával vagy programozott módon hozhatja létre az Azure PowerShell, az Azure CLI vagy az Azure REST API használatával. Ezekkel a módszerekkel vagy a Transact-SQL-lel további kiszolgálószintű IP-tűzfalszabályokat hozhat létre és kezelhet.
Fontos
Az adatbázisszintű IP-tűzfalszabályok csak a Transact-SQL használatával hozhatók létre és kezelhetők.
A teljesítmény javítása érdekében a kiszolgálószintű IP-tűzfalszabályokat átmenetileg adatbázisszinten is gyorsítótárazza a rendszer. A gyorsítótár frissítésével kapcsolatban lásd: DBCC FLUSHAUTHCACHE.
Kiszolgálószintű IP-tűzfalszabályok kezelése az Azure Portal használatával
Ha kiszolgálószintű IP-tűzfalszabályt szeretne beállítani az Azure Portalon, nyissa meg az adatbázis vagy a kiszolgáló áttekintő oldalát.
Tipp.
Oktatóanyagért tekintse meg az Adatbázis létrehozása az Azure Portal használatával című témakört.
Az adatbázis áttekintési oldaláról
Ha kiszolgálószintű IP-tűzfalszabályt szeretne beállítani az adatbázis áttekintési oldaláról, válassza a Kiszolgálói tűzfal beállítása lehetőséget az eszköztáron az alábbi képen látható módon.
Megnyílik a kiszolgáló hálózatkezelési lapja.
Adjon hozzá egy szabályt a Tűzfalszabályok szakaszban a használt számítógép IP-címének hozzáadásához, majd válassza a Mentés lehetőséget. A rendszer létrehoz egy kiszolgálószintű IP-tűzfalszabályt az aktuális IP-címhez.
A kiszolgáló áttekintési oldaláról
Megnyílik a kiszolgáló áttekintő oldala. A teljes kiszolgálónevet (például mynewserver20170403.database.windows.net) jeleníti meg, és további konfigurációs lehetőségeket biztosít.
Ha kiszolgálószintű szabályt szeretne beállítani erről a lapról, válassza a bal oldali Gépház menü Hálózatkezelés elemét.
Adjon hozzá egy szabályt a Tűzfalszabályok szakaszban a használt számítógép IP-címének hozzáadásához, majd válassza a Mentés lehetőséget. A rendszer létrehoz egy kiszolgálószintű IP-tűzfalszabályt az aktuális IP-címhez.
Ip-tűzfalszabályok kezelése a Transact-SQL használatával
Katalógusnézet vagy tárolt eljárás | Level | Leírás |
---|---|---|
sys.firewall_rules | Kiszolgáló | Az aktuális kiszolgálószintű IP-tűzfalszabályok megjelenítése |
sp_set_firewall_rule | Kiszolgáló | Kiszolgálószintű IP-tűzfalszabályok létrehozása vagy frissítése |
sp_delete_firewall_rule | Kiszolgáló | Kiszolgálószintű IP-tűzfalszabályok eltávolítása |
sys.database_firewall_rules | Database | Az aktuális adatbázisszintű IP-tűzfalszabályok megjelenítése |
sp_set_database_firewall_rule | Database | Az adatbázisszintű IP-tűzfalszabályok létrehozása vagy frissítése |
sp_delete_database_firewall_rule | Databases | Adatbázisszintű IP-tűzfalszabályok eltávolítása |
Az alábbi példa áttekinti a meglévő szabályokat, engedélyezi az IP-címek tartományát a Contoso kiszolgálón, és töröl egy IP-tűzfalszabályt:
SELECT * FROM sys.firewall_rules ORDER BY name;
Ezután adjon hozzá egy kiszolgálószintű IP-tűzfalszabályt.
EXECUTE sp_set_firewall_rule @name = N'ContosoFirewallRule',
@start_ip_address = '192.168.1.1', @end_ip_address = '192.168.1.10'
Kiszolgálószintű IP-tűzfalszabály törléséhez hajtsa végre a sp_delete_firewall_rule tárolt eljárást. Az alábbi példa törli a ContosoFirewallRule szabályt:
EXECUTE sp_delete_firewall_rule @name = N'ContosoFirewallRule'
Kiszolgálószintű IP-tűzfalszabályok kezelése a PowerShell használatával
Megjegyzés:
Ez a cikk az Azure Az PowerShell-modult használja, amely az Azure-ral való interakcióhoz ajánlott PowerShell-modul. Az Az PowerShell-modul használatának megkezdéséhez lásd az Azure PowerShell telepítését ismertető szakaszt. To learn how to migrate to the Az PowerShell module, see Migrate Azure PowerShell from AzureRM to Az.
Fontos
A PowerShell Azure Resource Manager modult továbbra is támogatja az Azure SQL Database, de az összes fejlesztés az Az.Sql modulhoz készült. Ezekhez a parancsmagokhoz lásd: AzureRM.Sql. Az Az és az AzureRm modulok parancsainak argumentumai lényegében azonosak.
Parancsmag | Level | Leírás |
---|---|---|
Get-AzSqlServerFirewallRule | Kiszolgáló | Az aktuális kiszolgálószintű tűzfalszabályokat adja vissza |
New-AzSqlServerFirewallRule | Kiszolgáló | Új kiszolgálószintű tűzfalszabály létrehozása |
Set-AzSqlServerFirewallRule | Kiszolgáló | Meglévő kiszolgálószintű tűzfalszabály tulajdonságainak frissítése |
Remove-AzSqlServerFirewallRule | Kiszolgáló | Kiszolgálószintű tűzfalszabályok eltávolítása |
Az alábbi példa a PowerShell használatával állít be egy kiszolgálószintű IP-tűzfalszabályt:
New-AzSqlServerFirewallRule -ResourceGroupName "myResourceGroup" `
-ServerName $servername `
-FirewallRuleName "ContosoIPRange" -StartIpAddress "192.168.1.0" -EndIpAddress "192.168.1.255"
Tipp.
A $servername adja meg a kiszolgáló nevét, és ne a teljes DNS-nevet, például a mysqldbservert adja meg a mysqldbserver.database.windows.net
A powershell-példákat egy rövid útmutató kontextusában a Create DB – PowerShell and Create a single database and create a server-level IP firewall rule using PowerShell című témakörben találhatja meg.
Kiszolgálószintű IP-tűzfalszabályok kezelése a parancssori felület használatával
Parancsmag | Level | Leírás |
---|---|---|
az sql server firewall-rule create | Kiszolgáló | Kiszolgáló IP-tűzfalszabályának létrehozása |
az sql server firewall-rule list | Kiszolgáló | A kiszolgálón található IP-tűzfalszabályok listázása |
az sql server firewall-rule show | Kiszolgáló | Ip-tűzfalszabály részleteit jeleníti meg |
az sql server firewall-rule update | Kiszolgáló | IP-tűzfalszabály Frissítések |
az sql server firewall-rule delete | Kiszolgáló | IP-tűzfalszabály törlése |
Az alábbi példa a parancssori felület használatával állít be egy kiszolgálószintű IP-tűzfalszabályt:
az sql server firewall-rule create --resource-group myResourceGroup --server $servername \
-n ContosoIPRange --start-ip-address 192.168.1.0 --end-ip-address 192.168.1.255
Tipp.
Ehhez $servername
adja meg a kiszolgáló nevét, nem pedig a teljes DNS-nevet. Például használja ahelyett, hogy mysqldbserver
mysqldbserver.database.windows.net
.
A parancssori felület rövid útmutatójának kontextusában példaként tekintse meg a Create DB – Azure CLI és az Egyetlen adatbázis létrehozása című témakört, és konfiguráljon egy kiszolgálószintű IP-tűzfalszabályt az Azure CLI használatával.
Az Azure Synapse Analytics esetében tekintse meg a következő példákat:
Parancsmag | Level | Leírás |
---|---|---|
az synapse workspace firewall-rule create | Kiszolgáló | Tűzfalszabály létrehozása |
az synapse workspace firewall-rule delete | Kiszolgáló | Tűzfalszabály törlése |
az synapse workspace firewall-rule list | Kiszolgáló | Az összes tűzfalszabály listázása |
az synapse workspace firewall-rule show | Kiszolgáló | Tűzfalszabály lekérése |
az synapse workspace firewall-rule update | Kiszolgáló | Tűzfalszabály frissítése |
az synapse workspace firewall-rule wait | Kiszolgáló | Helyezze a parancssori felületet várakozási állapotba, amíg a tűzfalszabály feltételei teljesülnek |
Az alábbi példa a parancssori felület használatával állít be egy kiszolgálószintű IP-tűzfalszabályt az Azure Synapse-ban:
az synapse workspace firewall-rule create --name AllowAllWindowsAzureIps --workspace-name $workspacename --resource-group $resourcegroupname --start-ip-address 0.0.0.0 --end-ip-address 0.0.0.0
Kiszolgálószintű IP-tűzfalszabályok kezelése REST API használatával
API | Level | Leírás |
---|---|---|
Tűzfalszabályok listázása | Kiszolgáló | Az aktuális kiszolgálószintű IP-tűzfalszabályok megjelenítése |
Tűzfalszabályok létrehozása vagy frissítése | Kiszolgáló | Kiszolgálószintű IP-tűzfalszabályok létrehozása vagy frissítése |
Tűzfalszabályok törlése | Kiszolgáló | Kiszolgálószintű IP-tűzfalszabályok eltávolítása |
Tűzfalszabályok lekérése | Kiszolgáló | Kiszolgálószintű IP-tűzfalszabályok lekérdezés |
Troubleshoot the database firewall
Vegye figyelembe az alábbi szempontokat, ha az Azure SQL Database-hez való hozzáférés nem a várt módon működik.
Helyi tűzfalkonfiguráció:
Ahhoz, hogy a számítógép hozzáférhessen az Azure SQL Database-hez, előfordulhat, hogy tűzfalkivételt kell létrehoznia a számítógépen az 1433-at futtató TCP-porthoz. Ha az Azure-felhő határain belül szeretne kapcsolatokat létesíteni, előfordulhat, hogy további portokat kell megnyitnia. További információkért tekintse meg az 1433-at meghaladó portok "SQL Database: Kívül és belül" című szakaszát ADO.NET 4.5-ös és Azure SQL Database-hez.
Hálózati címfordítás:
A hálózati címfordítás (NAT) miatt a számítógép által az Azure SQL Database-hez való csatlakozáshoz használt IP-cím eltérhet a számítógép IP-konfigurációs beállításaiban megadott IP-címétől. To view the IP address that your computer is using to connect to Azure:
- Sign in to the portal.
- Go to the Configure tab on the server that hosts your database.
- Az aktuális ügyfél IP-címe az Engedélyezett IP-címek szakaszban jelenik meg. Válassza a Hozzáadás engedélyezett IP-címekhez lehetőséget, hogy a számítógép hozzáférhessen a kiszolgálóhoz.
Az engedélyezési lista módosításai még nem lépnek érvénybe:
Az Azure SQL Database tűzfalkonfigurációjának módosítása akár öt perces késéssel is járhat.
A bejelentkezés nincs engedélyezve, vagy helytelen jelszót használtak:
Ha egy bejelentkezés nem rendelkezik engedélyekkel a kiszolgálón, vagy a jelszó helytelen, a rendszer megtagadja a kapcsolatot a kiszolgálóval. Tűzfalbeállítás létrehozása csak lehetőséget biztosít az ügyfeleknek arra, hogy megpróbáljanak csatlakozni a kiszolgálóhoz. Az ügyfélnek továbbra is meg kell adnia a szükséges biztonsági hitelesítő adatokat. A bejelentkezések előkészítésével kapcsolatos további információkért tekintse meg az adatbázis-hozzáférés szabályozását és biztosítását ismertető témakört.
Dinamikus IP-cím:
Ha dinamikus IP-címzést használó internetkapcsolattal rendelkezik, és nem tud átjutni a tűzfalon, próbálkozzon az alábbi megoldások egyikével:
- Ask your internet service provider for the IP address range that's assigned to your client computers that access the server. Adja hozzá az IP-címtartományt IP-tűzfalszabályként.
- Ehelyett statikus IP-címzést kérhet le az ügyfélszámítógépekhez. Adja hozzá az IP-címeket IP-tűzfalszabályokként.
További lépések
- Győződjön meg arról, hogy a vállalati hálózati környezet engedélyezi a bejövő kommunikációt az Azure-adatközpontok által használt számítási IP-címtartományokból (beleértve az SQL-tartományokat is). Előfordulhat, hogy ezeket az IP-címeket hozzá kell adnia az engedélyezési listához. Lásd: Microsoft Azure-adatközpont IP-tartományai.
- Tekintse meg az azure SQL Database-ben egyetlen adatbázis létrehozásáról szóló rövid útmutatót.
- Ha segítségre van szüksége az Azure SQL Database-beli adatbázishoz való csatlakozáshoz nyílt forráskódú vagy külső alkalmazásokból, tekintse meg az Ügyfél gyors útmutató kódmintáit az Azure SQL Database-hez.
- További, esetleg megnyitandó portokról a ADO.NET 4.5-ös és SQL Database-hez készült Portok 1433-on túl című szakaszában talál további információt.
- Az Azure SQL Database biztonságának áttekintéséért tekintse meg az adatbázis biztonságossá tételét ismertető témakört.