ip-firewallregels Azure SQL Database en Azure Synapse
VAN TOEPASSING OP: Azure SQL Database Azure Synapse Analytics
Wanneer u een nieuwe server maakt in Azure SQL Database of Azure Synapse Analytics met de naam mysqlserver, blokkeert een firewall op serverniveau bijvoorbeeld alle toegang tot het openbare eindpunt voor de server (die toegankelijk is op mysqlserver.database.windows.net). Ter vereenvoudiging wordt SQL Database gebruikt om te verwijzen naar zowel SQL Database als Azure Synapse Analytics.
Belangrijk
Dit artikel is niet van toepassing op Azure SQL Managed Instance. Zie Verbinding maken uw toepassing Azure SQL Managed Instance voor informatie over netwerkconfiguratie.
Azure Synapse ondersteunt alleen IP-firewallregels op serverniveau. Het biedt geen ondersteuning voor IP-firewallregels op databaseniveau.
Hoe de firewall werkt
Verbindingspogingen vanaf internet en Azure moeten de firewall passeren voordat ze uw server of database bereiken, zoals in het volgende diagram wordt weergegeven.
IP-firewallregels op serverniveau
Met deze regels kunnen clients toegang krijgen tot uw hele server, dat wil zeggen, alle databases die door de server worden beheerd. De regels worden opgeslagen in de hoofddatabase . U kunt voor een server maximaal 128 firewallregels op serverniveau opgeven. Als u de instelling Toestaan dat Azure-services en -resources toegang hebben tot deze server hebt ingeschakeld, telt dit als een enkele firewallregel voor de server.
U kunt IP-firewallregels op serverniveau configureren met behulp van de instructies Azure Portal, PowerShell of Transact-SQL.
- Als u de portal of PowerShell wilt gebruiken, moet u de eigenaar van het abonnement of een inzender voor een abonnement zijn.
- Als u Transact-SQL wilt gebruiken, moet u verbinding maken met de hoofddatabase als de principal-aanmelding op serverniveau of als de Azure Active Directory-beheerder. (Er moet eerst een IP-firewallregel op serverniveau worden gemaakt door een gebruiker met machtigingen op Azure-niveau.)
Notitie
Tijdens het maken van een nieuwe logische SQL-server van de Azure Portal is de instelling Azure-services en -resources toestaan om toegang te krijgen tot deze serverinstelling standaard ingesteld op Nee.
IP-firewallregels op databaseniveau
Met IP-firewallregels op databaseniveau kunnen clients toegang krijgen tot bepaalde (beveiligde) databases. U maakt de regels voor elke database (inclusief de hoofddatabase ) en deze worden opgeslagen in de afzonderlijke database.
- U kunt alleen IP-firewallregels op databaseniveau maken en beheren voor hoofd- en gebruikersdatabases met behulp van Transact-SQL-instructies en pas nadat u de eerste firewall op serverniveau hebt geconfigureerd.
- Als u een IP-adresbereik opgeeft in de IP-firewallregel op databaseniveau die zich buiten het bereik in de IP-firewallregel op serverniveau bevindt, hebben alleen clients met IP-adressen in het bereik op databaseniveau toegang tot de database.
- U kunt maximaal 128 IP-firewallregels op databaseniveau voor een database hebben. Zie het voorbeeld verderop in dit artikel voor meer informatie over het configureren van IP-firewallregels op databaseniveau en zie sp_set_database_firewall_rule (Azure SQL Database).
Aanbevelingen voor het instellen van firewallregels
We raden u aan waar mogelijk IP-firewallregels op databaseniveau te gebruiken. Dit gebruik verbetert de beveiliging en maakt uw database draagbaarder. Ip-firewallregels op serverniveau gebruiken voor beheerders. Gebruik ze ook wanneer u veel databases hebt met dezelfde toegangsvereisten en u niet elke database afzonderlijk wilt configureren.
Notitie
Voor meer informatie over draagbare databases in de context van bedrijfscontinuïteit raadpleegt u Authentication requirements for disaster recovery (Verificatievereisten voor herstel na noodgevallen).
IP-firewallregels op server- en databaseniveau
Moeten gebruikers van een database volledig worden geïsoleerd van een andere database?
Zo ja, gebruik ip-firewallregels op databaseniveau om toegang te verlenen. Deze methode vermijdt het gebruik van IP-firewallregels op serverniveau, waardoor toegang via de firewall naar alle databases wordt toege staan. Dat zou de diepte van je verdediging verminderen.
Hebben gebruikers op de IP-adressen toegang nodig tot alle databases?
Zo ja, gebruik ip-firewallregels op serverniveau om het aantal keren te verminderen dat u IP-firewallregels moet configureren.
Heeft de persoon of het team die de IP-firewallregels configureert alleen toegang via de Azure Portal, PowerShell of de REST API?
Als dit het probleem is, moet u IP-firewallregels op serverniveau gebruiken. IP-firewallregels op databaseniveau kunnen alleen worden geconfigureerd via Transact-SQL.
Is de persoon of het team die de IP-firewallregels configureert verboden om machtigingen op hoog niveau op databaseniveau te hebben?
Als dit het probleem is, gebruikt u IP-firewallregels op serverniveau. U hebt ten minste CONTROL DATABASE-machtigingen op databaseniveau nodig om IP-firewallregels op databaseniveau te configureren via Transact-SQL.
Beheert de persoon of het team die de IP-firewallregels configureert of controleert centraal IP-firewallregels voor veel (mogelijk honderden) databases?
In dit scenario worden aanbevolen procedures bepaald door uw behoeften en omgeving. Ip-firewallregels op serverniveau zijn mogelijk eenvoudiger te configureren, maar scripting kan regels op databaseniveau configureren. En zelfs als u IP-firewallregels op serverniveau gebruikt, moet u mogelijk IP-firewallregels op databaseniveau controleren om te zien of gebruikers met de machtiging CONTROL voor de database IP-firewallregels op databaseniveau maken.
Kan ik een combinatie van IP-firewallregels op serverniveau en databaseniveau gebruiken?
Ja. Sommige gebruikers, zoals beheerders, hebben mogelijk IP-firewallregels op serverniveau nodig. Andere gebruikers, zoals gebruikers van een databasetoepassing, hebben mogelijk IP-firewallregels op databaseniveau nodig.
Verbindingen vanaf internet
Wanneer een computer probeert verbinding te maken met uw server vanaf internet, controleert de firewall eerst het oorspronkelijke IP-adres van de aanvraag op basis van de IP-firewallregels op databaseniveau voor de database die de verbinding aanvraagt.
- Als het adres zich binnen een bereik bevindt dat is opgegeven in de IP-firewallregels op databaseniveau, wordt de verbinding verleend aan de database die de regel bevat.
- Als het adres zich niet binnen een bereik in de IP-firewallregels op databaseniveau bevindt, controleert de firewall de IP-firewallregels op serverniveau. Als het adres zich binnen een bereik bevindt dat zich in de IP-firewallregels op serverniveau bevindt, wordt de verbinding verleend. IP-firewallregels op serverniveau zijn van toepassing op alle databases die worden beheerd door de server.
- Als het adres zich niet binnen een bereik bevindt dat zich in een van de IP-firewallregels op database- of serverniveau bevindt, mislukt de verbindingsaanvraag.
Notitie
Als u toegang wilt krijgen tot Azure SQL Database vanaf uw lokale computer, moet u ervoor zorgen dat de firewall op uw netwerk en lokale computer uitgaande communicatie op TCP-poort 1433 toestaat.
Verbindingen vanuit Azure
Als u wilt toestaan dat toepassingen die worden gehost in Azure verbinding kunnen maken met uw SQL-server, moeten Azure-verbindingen zijn ingeschakeld. Als u Azure-verbindingen wilt inschakelen, moet er een firewallregel zijn met het starten en beëindigen van IP-adressen ingesteld op 0.0.0.0. Deze aanbevolen regel is alleen van toepassing op Azure SQL Database.
Wanneer een toepassing van Azure verbinding probeert te maken met de server, controleert de firewall of Azure-verbindingen zijn toegestaan door te controleren of deze firewallregel bestaat. Dit kan rechtstreeks vanaf de blade Azure Portal worden ingeschakeld door de Azure-services en -resources toegang te geven tot deze server in de instellingen voor firewalls en virtuele netwerken. Als u overschakelt naar ON, wordt een inkomende firewallregel gemaakt voor IP 0.0.0.0 - 0.0.0 met de naam AllowAllWindowsAzureIps. De regel kan worden weergegeven in de hoofddatabase sys.firewall_rules weergave. Gebruik PowerShell of de Azure CLI om een firewallregel te maken met ip-adressen die zijn ingesteld op 0.0.0.0 als u de portal niet gebruikt.
Belangrijk
Met deze optie configureert u de firewall om alle verbindingen vanuit Azure toe te staan, inclusief verbindingen van de abonnementen van andere klanten. Als u deze optie selecteert, moet u ervoor zorgen dat uw aanmeldings- en gebruikersmachtigingen alleen de toegang tot geautoriseerde gebruikers beperken.
Machtigingen
Als u IP-firewallregels voor de Azure SQL Server wilt maken en beheren, moet u een van de volgende rollen hebben:
- in de rol SQL Server Inzender
- in de rol SQL Security Manager
- de eigenaar van de resource die de Azure SQL-server bevat
IP-firewallregels maken en beheren
U maakt de eerste firewallinstelling op serverniveau met behulp van de Azure Portal of programmatisch met behulp van Azure PowerShell, Azure CLI of een Azure REST API. U maakt en beheert aanvullende IP-firewallregels op serverniveau met behulp van deze methoden of Transact-SQL.
Belangrijk
IP-firewallregels op databaseniveau kunnen alleen worden gemaakt en beheerd met behulp van Transact-SQL.
Voor betere prestaties worden IP-firewallregels op serverniveau tijdelijk in de cache op databaseniveau opgeslagen. Zie DBCC FLUSHAUTHCACHE als u de cache wilt vernieuwen.
Tip
U kunt Databasecontrole gebruiken om firewallwijzigingen op serverniveau en databaseniveau te controleren.
De Azure Portal gebruiken om IP-firewallregels op serverniveau te beheren
Als u een IP-firewallregel op serverniveau in de Azure Portal wilt instellen, gaat u naar de overzichtspagina voor uw database of server.
Tip
Zie Een database maken met behulp van de Azure Portal voor een zelfstudie.
Op de overzichtspagina van de database
Als u een IP-firewallregel op serverniveau wilt instellen op de overzichtspagina van de database, selecteert u Serverfirewall instellen op de werkbalk, zoals in de volgende afbeelding wordt weergegeven.
De pagina Firewallinstellingen voor de server wordt geopend.
Selecteer Client-IP toevoegen op de werkbalk om het IP-adres toe te voegen van de computer die u gebruikt en selecteer Vervolgens Opslaan. Er wordt een IP-firewallregel op serverniveau gemaakt voor uw huidige IP-adres.
Op de overzichtspagina van de server
De overzichtspagina voor uw server wordt geopend. Het toont de volledig gekwalificeerde servernaam (zoals mynewserver20170403.database.windows.net) en biedt opties voor verdere configuratie.
Als u een regel op serverniveau wilt instellen op deze pagina, selecteert u Firewall in het menu Instellingen aan de linkerkant.
Selecteer Client-IP toevoegen op de werkbalk om het IP-adres toe te voegen van de computer die u gebruikt en selecteer Vervolgens Opslaan. Er wordt een IP-firewallregel op serverniveau gemaakt voor uw huidige IP-adres.
Transact-SQL gebruiken om IP-firewallregels te beheren
Catalogusweergave of opgeslagen procedure | Niveau | Description |
---|---|---|
sys.firewall_rules | Server | Geeft de huidige IP-firewallregels op serverniveau weer |
sp_set_firewall_rule | Server | IP-firewallregels op serverniveau maken of bijwerken |
sp_delete_firewall_rule | Server | IP-firewallregels op serverniveau verwijderen |
sys.database_firewall_rules | Database | Geeft de huidige IP-firewallregels op databaseniveau weer |
sp_set_database_firewall_rule | Database | Ip-firewallregels op databaseniveau maken of bijwerken |
sp_delete_database_firewall_rule | Databases | IP-firewallregels op databaseniveau verwijderen |
Het volgende voorbeeld controleert de bestaande regels, schakelt een bereik van IP-adressen op de server Contoso in en verwijdert een IP-firewallregel:
SELECT * FROM sys.firewall_rules ORDER BY name;
Voeg vervolgens een IP-firewallregel op serverniveau toe.
EXECUTE sp_set_firewall_rule @name = N'ContosoFirewallRule',
@start_ip_address = '192.168.1.1', @end_ip_address = '192.168.1.10'
Als u een IP-firewallregel op serverniveau wilt verwijderen, voert u de sp_delete_firewall_rule opgeslagen procedure uit. In het volgende voorbeeld wordt de regel ContosoFirewallRule verwijderd:
EXECUTE sp_delete_firewall_rule @name = N'ContosoFirewallRule'
PowerShell gebruiken om IP-firewallregels op serverniveau te beheren
Notitie
In dit artikel wordt de Azure Az PowerShell-module gebruikt. Dit is de aanbevolen PowerShell-module voor interactie met Azure. Raadpleeg Azure PowerShell installeren om aan de slag te gaan met de Az PowerShell-module. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.
Belangrijk
De PowerShell Azure Resource Manager-module wordt nog steeds ondersteund door Azure SQL Database, maar alle ontwikkeling is nu voor de Az.Sql-module. Zie AzureRM.Sql voor deze cmdlets. De argumenten voor de opdrachten in de Az- en AzureRm-modules zijn aanzienlijk identiek.
Cmdlet | Niveau | Description |
---|---|---|
Get-AzSqlServerFirewallRule | Server | Retourneert de huidige firewallregels op serverniveau |
New-AzSqlServerFirewallRule | Server | Maakt een nieuwe firewallregel op serverniveau |
Set-AzSqlServerFirewallRule | Server | Werkt de eigenschappen van een bestaande firewallregel op serverniveau bij |
Remove-AzSqlServerFirewallRule | Server | Verwijdert firewallregels op serverniveau |
In het volgende voorbeeld wordt PowerShell gebruikt om een IP-firewallregel op serverniveau in te stellen:
New-AzSqlServerFirewallRule -ResourceGroupName "myResourceGroup" `
-ServerName $servername `
-FirewallRuleName "ContosoIPRange" -StartIpAddress "192.168.1.0" -EndIpAddress "192.168.1.255"
Tip
Geef voor $servername de servernaam op en niet de volledig gekwalificeerde DNS-naam, bijvoorbeeld mysqldbserver op in plaats van mysqldbserver.database.windows.net
Zie Create DB - PowerShell and Create a single database and Create a single database and configure a server level IP firewall rule using PowerShell(SB) voor PowerShell-voorbeelden in de context van een quickstart.
CLI gebruiken om IP-firewallregels op serverniveau te beheren
Cmdlet | Niveau | Description |
---|---|---|
az sql server firewall-rule create | Server | Hiermee maakt u een IP-firewallregel voor de server |
az sql server firewall-rule list | Server | Geeft een lijst weer van de IP-firewallregels op een server |
az sql server firewall-rule show | Server | Toont de details van een IP-firewallregel |
az sql server firewall-rule update | Server | Een IP-firewallregel bijwerken |
az sql server firewall-rule delete | Server | Hiermee verwijdert u een IP-firewallregel |
In het volgende voorbeeld wordt CLI gebruikt om een IP-firewallregel op serverniveau in te stellen:
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
Tip
Geef voor $servername de servernaam op en niet de volledig gekwalificeerde DNS-naam, bijvoorbeeld mysqldbserver op in plaats van mysqldbserver.database.windows.net
Zie Create DB - Azure CLI and Create a single database and Create a server level IP firewall rule using the Azure CLI(Azure CLI) voor een CLI-voorbeeld in de context van een quickstart.
Een REST API gebruiken om IP-firewallregels op serverniveau te beheren
API | Niveau | Description |
---|---|---|
Firewallregels vermelden | Server | Geeft de huidige IP-firewallregels op serverniveau weer |
Firewallregels maken of bijwerken | Server | IP-firewallregels op serverniveau maken of bijwerken |
Firewallregels verwijderen | Server | IP-firewallregels op serverniveau verwijderen |
Firewallregels ophalen | Server | Hiermee haalt u IP-firewallregels op serverniveau op |
Problemen met de databasefirewall oplossen
Houd rekening met de volgende punten wanneer de toegang tot Azure SQL Database niet werkt zoals verwacht.
Lokale firewallconfiguratie:
Voordat uw computer toegang heeft tot Azure SQL Database, moet u mogelijk een firewall-uitzondering maken op uw computer voor TCP-poort 1433. Als u verbindingen wilt maken binnen de grens van de Azure-cloud, moet u mogelijk extra poorten openen. Zie de sectie 'SQL Database: Buiten versus binnen' van poorten buiten 1433 voor ADO.NET 4,5 en Azure SQL Database voor meer informatie.
Netwerkadresomzetting:
Vanwege nat (Network Address Translation), kan het IP-adres dat door uw computer wordt gebruikt om verbinding te maken met Azure SQL Database afwijken van het IP-adres in de IP-configuratie-instellingen van uw computer. Ga als volgt te werk als u het IP-adres wilr weergeven dat uw computer gebruikt om verbinding te maken met Azure:
- Meld u aan bij de portal.
- Ga naar het tabblad Configureren op de server die uw database host.
- Het huidige CLIENT-IP-adres wordt weergegeven in de sectie Toegestane IP-adressen . Selecteer Toevoegen voor toegestane IP-adressen om deze computer toegang te geven tot de server.
Wijzigingen in de acceptatielijst zijn nog niet van kracht:
Het kan tot vijf minuten duren voordat wijzigingen in de Azure SQL Database firewallconfiguratie van kracht worden.
De aanmelding is niet geautoriseerd of er is een onjuist wachtwoord gebruikt:
Als een aanmelding geen machtigingen heeft op de server of als het wachtwoord onjuist is, wordt de verbinding met de server geweigerd. Het maken van een firewallinstelling biedt clients alleen de mogelijkheid om verbinding te maken met uw server. De client moet nog steeds de benodigde beveiligingsreferenties opgeven. Zie Databasetoegang beheren en verlenen voor meer informatie over het voorbereiden van aanmeldingen.
Dynamisch IP-adres:
Als u een internetverbinding hebt die gebruikmaakt van dynamische IP-adressering en u problemen ondervindt bij het passeren van de firewall, probeert u een van de volgende oplossingen:
- Vraag uw internetprovider naar het IP-adresbereik dat is toegewezen aan uw clientcomputers die toegang hebben tot de server. Voeg dat IP-adresbereik toe als een IP-firewallregel.
- Haal in plaats daarvan statische IP-adressering op voor uw clientcomputers. Voeg de IP-adressen toe als IP-firewallregels.
Volgende stappen
- Controleer of uw bedrijfsnetwerkomgeving binnenkomende communicatie toestaat van de IP-adresbereiken van het rekenproces (inclusief SQL bereiken) die worden gebruikt door de Azure-datacenters. Mogelijk moet u deze IP-adressen toevoegen aan de acceptatielijst. Zie Microsoft Azure IP-bereiken van datacenters.
- Zie onze quickstart over het maken van één database in Azure SQL Database.
- Voor hulp bij het maken van verbinding met een database in Azure SQL Database vanuit opensource- of toepassingen van derden, raadpleegt u snelstartcodevoorbeelden van client naar Azure SQL Database.
- Zie de sectie 'SQL Database: Buiten versus binnen' van Poorten buiten 1433 voor ADO.NET 4,5 en SQL Database voor meer poorten die u mogelijk moet openen.
- Zie Uw database beveiligen voor een overzicht van Azure SQL Database beveiliging.