Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Applies to:Azure SQL Database
Azure Synapse Analytics
Wanneer u een nieuwe server maakt in Azure SQL Database of Azure Synapse Analytics met de naam mysqlserver, bijvoorbeeld, blokkeert een firewall op serverniveau 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. Dit artikel is niet van toepassing op Azure SQL Managed Instance. Zie
Notitie
Microsoft Entra ID werd voorheen Azure Active Directory (Azure AD) genoemd.
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.
Belangrijk
Azure Synapse ondersteunt alleen IP-firewallregels op serverniveau. Ip-firewallregels op databaseniveau worden niet ondersteund.
IP-firewallregels op serverniveau
Met deze regels kunnen clients toegang krijgen tot uw hele server, dat wil gezegd, alle databases die door de server worden beheerd. De regels worden opgeslagen in de master database. Het maximum aantal IP-firewallregels op serverniveau is beperkt tot 256 voor een server. Als u de instelling Allow Azure Services en resources voor toegang tot deze server is ingeschakeld, wordt dit geteld als één firewallregel voor de server.
U kunt IP-firewallregels op serverniveau configureren met behulp van de Azure-portal, PowerShell of Transact-SQL instructies.
Notitie
Het maximum aantal IP-firewallregels op serverniveau is beperkt tot 256 bij het configureren met behulp van de Azure-portal.
- Als u de portal of PowerShell wilt gebruiken, moet u de eigenaar van het abonnement of een inzender voor het abonnement zijn.
- Als u Transact-SQL wilt gebruiken, moet u verbinding maken met de
master-database als het hoofdaccount op serverniveau of als de Microsoft Entra Administrator. (Er moet eerst een IP-firewallregel op serverniveau worden gemaakt door een gebruiker met Azure-machtigingen.)
Notitie
Tijdens het maken van een nieuwe logische SQL-server vanuit de Azure-portal is de instelling Allow Azure Services and resources to access this server ingesteld op No.
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 master database) en deze worden opgeslagen in de afzonderlijke database.
- U kunt alleen IP-firewallregels op databaseniveau maken en beheren voor
master- 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 buiten het bereik van de IP-firewallregel op serverniveau valt, hebben alleen clients met IP-adressen in het bereik op databaseniveau toegang tot de database.
- De standaardwaarde is maximaal 256 IP-firewallregels op databaseniveau voor een database. 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
Gebruik waar mogelijk IP-firewallregels op databaseniveau. Deze procedure verbetert de beveiliging en maakt uw database draagbaarder. Gebruik IP-firewallregels op serverniveau voor beheerders. Gebruik ze ook wanneer u veel databases hebt met dezelfde toegangsvereisten en u niet elke database afzonderlijk wilt configureren.
Notitie
Zie Configure and manage Azure SQL Database security for geo-restore or failover voor informatie over draagbare databases in de context van bedrijfscontinuïteit.
IP-firewallregels op serverniveau versus IP-firewallregels op 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 tot alle databases mogelijk is. Dat zou de diepte van uw 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 beperken dat u IP-firewallregels moet configureren.
Heeft de persoon of het team dat de IP-firewallregels configureert, alleen toegang via de Azure-portal, PowerShell of de REST API?
Zo ja, dan 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 machtiging nodig op databaseniveau om IP-firewallregels op databaseniveau te configureren via Transact-SQL.
Beheert de persoon of het team die de IP-firewallregels configureert of controleert, ip-firewallregels centraal 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 server- 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 verbinding probeert 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 binnen een bereik valt 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 door de server worden beheerd.
- 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, moet u Azure verbindingen inschakelen. Hiervoor maakt u een firewallregel met ip-adressen die beginnen en eindigen op 0.0.0.0. Deze 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 vanuit het deelvenster Azure portal worden ingeschakeld door in de instellingen voor Firewalls en virtuele netwerken de schakelaar Azure-services en -resources toestaan om toegang te krijgen tot deze server naar ON te zetten. Als u overschakelt naar ON, wordt er een binnenkomende firewallregel gemaakt voor IP 0.0.0.0 - 0.0.0 met de naam AllowAllWindowsAzureIps. De regel kan worden weergegeven in uw master database sys.firewall_rules weergave. Gebruik PowerShell of de Azure CLI om een firewallregel te maken met start- en eind-IP-adressen ingesteld op 0.0.0.0 als u de portal niet gebruikt.
Waarschuwing
Als u deze optie inschakelt, kunt u verbindingen van alle Azure-diensten toestaan, inclusief diensten die draaien in de abonnementen van andere klanten. Met deze regel wordt de toegang tot uw abonnement of resourcegroep niet beperkt. Elke Azure resource met uitgaande connectiviteit met Azure SQL Database kan verbinding maken. Wanneer u deze instelling inschakelt, moet u ervoor zorgen dat uw aanmeldings- en gebruikersmachtigingen de toegang beperken tot alleen geautoriseerde gebruikers.
In de volgende Azure services wordt deze regel vaak gebruikt om verbinding te maken met Azure SQL Database:
- Azure App Service en Azure Functions
- Azure Data Factory
- Azure Stream Analytics
- Azure Logic Apps
- Azure Power BI
- Azure AI services
Voor verbeterde beveiliging kunt u overwegen om service-eindpunten voor virtuele netwerken of privé-eindpunten te gebruiken in plaats van de regel AllowAllWindowsAzureIps . Deze alternatieven beperken de connectiviteit met specifieke subnetten of particuliere netwerken in plaats van alle Azure IP-adressen toe te staan.
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 Bijdrager
- in de rol van 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.
Ter verbetering van de prestaties worden IP-firewallregels op serverniveau tijdelijk in de cache op databaseniveau opgeslagen. Zie DBCC FLUSHAUTHCACHE om de cache te vernieuwen.
Aanbeveling
U kunt Auditing gebruiken voor Azure SQL Database en Azure Synapse Analytics om wijzigingen in de firewall op server- en databaseniveau te controleren.
De Azure-portal gebruiken om IP-firewallregels op serverniveau te beheren
Als u een IP-firewallregel op serverniveau wilt instellen in de Azure-portal, gaat u naar de overzichtspagina voor uw database of server.
Aanbeveling
Zie Quickstart: Een individuele database maken - Azure SQL Database 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 Netwerken voor de server wordt geopend.
Voeg een regel toe in de sectie Firewallregels om het IP-adres toe te voegen van de computer die u gebruikt en selecteer Opslaan. Er wordt een IP-firewallregel op serverniveau gemaakt voor uw huidige IP-adres.
Vanaf de overzichtspagina van de server
De overzichtspagina voor uw server wordt geopend. Hier ziet u de volledig gekwalificeerde servernaam (zoals mynewserver20170403.database.windows.net) en biedt u opties voor verdere configuratie.
Als u een regel op serverniveau wilt instellen op deze pagina, selecteert u Netwerken in het menu Instellingen aan de linkerkant.
Voeg een regel toe in de sectie Firewallregels om het IP-adres toe te voegen van de computer die u gebruikt en selecteer Opslaan. Er wordt een IP-firewallregel op serverniveau gemaakt voor uw huidige IP-adres.
Ip-firewallregels beheren met Transact-SQL
| Catalogusweergave of opgeslagen procedure | Niveau | Beschrijving |
|---|---|---|
| sys.firewall_rules | Serverapparaat | Geeft de huidige IP-firewallregels op serverniveau weer |
| sp_set_firewall_rule | Serverapparaat | IP-firewallregels op serverniveau maken of bijwerken |
| sp_delete_firewall_rule | Serverapparaat | IP-firewallregels op serverniveau verwijderen |
| sys.database_firewall_rules | Databank | Geeft de huidige IP-firewallregels op databaseniveau weer |
| sp_set_database_firewall_rule | Databank | Ip-firewallregels op databaseniveau maken of bijwerken |
| sp_delete_database_firewall_rule | Databanken | IP-firewallregels op databaseniveau verwijderen |
In het volgende voorbeeld worden de bestaande regels beoordeeld, wordt een bereik van IP-adressen op de server Contoso ingeschakeld en wordt een IP-firewallregel verwijderd:
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. Zie Install Azure PowerShell om aan de slag te gaan met de Az PowerShell-module. Zie Migrate Azure PowerShell van AzureRM naar Az voor meer informatie over het migreren naar de Az PowerShell-module.
Belangrijk
De Module PowerShell Azure Resource Manager (AzureRM) is afgeschaft op 29 februari 2024. Voor alle toekomstige ontwikkeling moet de Az.Sql-module worden gebruikt. Gebruikers wordt aangeraden om van AzureRM naar de Az PowerShell-module te migreren om ondersteuning en updates te garanderen. De AzureRM-module wordt niet meer onderhouden of ondersteund. De argumenten voor de opdrachten in de Az PowerShell-module en in de AzureRM-modules zijn aanzienlijk identiek. Zie Introductie van de nieuwe Az PowerShell-modulevoor meer informatie over de compatibiliteit.
| Cmdlet | Niveau | Beschrijving |
|---|---|---|
| Get-AzSqlServerFirewallRule | Serverapparaat | Retourneert de huidige firewallregels op serverniveau |
| New-AzSqlServerFirewallRule | Serverapparaat | Hiermee maakt u een nieuwe firewallregel op serverniveau |
| Set-AzSqlServerFirewallRule | Serverapparaat | Hiermee worden de eigenschappen van een bestaande firewallregel op serverniveau bijgewerkt |
| Remove-AzSqlServerFirewallRule | Serverapparaat | Hiermee verwijdert u 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"
Aanbeveling
Geef $servernamede servernaam op en niet de volledig gekwalificeerde DNS-naam (geef bijvoorbeeld mysqldbserver op in plaats van mysqldbserver.database.windows.net).
Zie voor PowerShell-voorbeelden in de context van een quickstart Azure PowerShell voorbeelden voor Azure SQL Database en PowerShell gebruiken om één database te maken en een firewallregel op serverniveau te configureren.
CLI gebruiken om IP-firewallregels op serverniveau te beheren
| Cmdlet | Niveau | Beschrijving |
|---|---|---|
| az sql server firewall-regel aanmaken | Serverapparaat | Maakt een server-IP-firewallregel aan |
| az sql server firewall-regel lijst | Serverapparaat | Geeft een lijst weer van de IP-firewallregels op een server |
| Toon firewall-regel van SQL-server | Serverapparaat | Toont de details van een IP-firewallregel |
| az sql server firewall-regel bijwerken | Serverapparaat | Een IP-firewallregel bijwerken |
| az sql-server firewallregel verwijderen | Serverapparaat | 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
Aanbeveling
$servernameGeef de servernaam op en niet de volledig gekwalificeerde DNS-naam. Gebruik bijvoorbeeld mysqldbserver in plaats van mysqldbserver.database.windows.net.
Zie voor een CLI-voorbeeld in de context van een quickstart Azure CLI voorbeelden voor Azure SQL Database en Een individuele database maken en een firewallregel configureren met behulp van de Azure CLI.
Raadpleeg de volgende voorbeelden voor Azure Synapse Analytics:
| Cmdlet | Niveau | Beschrijving |
|---|---|---|
| az synapse workspace firewall-rule create | Serverapparaat | Een firewallregel maken |
| az synapse workspace firewall-rule delete | Serverapparaat | Een firewallregel verwijderen |
| az synapse workspace firewall-rule list | Serverapparaat | Alle firewallregels weergeven |
| az synapse workspace firewall-rule show | Serverapparaat | Haal een firewallregel op |
| az synapse werkruimte firewall-regel bijwerken | Serverapparaat | Een firewallregel bijwerken |
| az synapse werkruimte firewall-regel wacht | Serverapparaat | Plaats de CLI in een wachtstatus totdat aan een voorwaarde van een firewallregel wordt voldaan |
In het volgende voorbeeld wordt CLI gebruikt om een IP-firewallregel op serverniveau in te stellen in Azure Synapse:
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
Een REST API gebruiken om IP-firewallregels op serverniveau te beheren
| API | Niveau | Beschrijving |
|---|---|---|
| Firewallregels vermelden | Serverapparaat | Geeft de huidige IP-firewallregels op serverniveau weer |
| Firewallregels maken of bijwerken | Serverapparaat | IP-firewallregels op serverniveau maken of bijwerken |
| firewallregels verwijderen | Serverapparaat | IP-firewallregels op serverniveau verwijderen |
| Firewallregels ophalen | Serverapparaat | Hiermee haalt u IP-firewallregels op serverniveau op |
Inzicht in de latentie van firewallupdates
Het serververificatiemodel heeft een latentie van vijf minuten voor alle wijzigingen in beveiligingsinstellingen, tenzij de database is opgenomen en zonder een failoverpartner. Wijzigingen die zijn aangebracht in ingesloten databases zonder failoverpartner, zijn onmiddellijk. Voor ingesloten databases met een failoverpartner wordt elke beveiligingsupdate onmiddellijk uitgevoerd op de primaire database, maar de secundaire database kan maximaal vijf minuten duren om de wijzigingen weer te geven.
In de volgende tabel wordt de latentie van beveiligingsinstellingen beschreven op basis van het databasetype en de failoverconfiguratie:
| Verificatiemodel | Failover geconfigureerd | Latentie voor wijzigingen in beveiligingsinstellingen | Latente exemplaren |
|---|---|---|---|
| Serverauthenticatie | Ja | 5 minuten | alle databases |
| Serverauthenticatie | Nee. | 5 minuten | alle databases |
| Ingesloten database | Ja | 5 minuten | de secundaire database |
| Ingesloten database | Nee. | Geen | Geen |
Firewallregels handmatig vernieuwen
Als u wilt zien dat firewallregels sneller zijn bijgewerkt dan de latentie van 5 minuten, kunt u de firewallregels handmatig vernieuwen. Meld u aan bij het database-exemplaar waarvoor de regels zijn bijgewerkt en voer DBCC FLUSHAUTHCACHE uit. Dit zorgt ervoor dat het database-exemplaar de lokale cache leegmaakt en firewallregels vernieuwt.
DBCC FLUSHAUTHCACHE[;]
Problemen met de databasefirewall oplossen
Houd rekening met de volgende punten wanneer de toegang tot Azure SQL Database zich niet gedraagt zoals verwacht.
Configuratie van lokale firewall:
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 Azure cloudgrens, moet u mogelijk extra poorten openen. Zie de sectie SQL Database: Outside vs inside van Ports beyond 1433 for ADO.NET 4.5 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 om het IP-adres weer te geven 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 IP-adres van de client 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 doorgevoerd:
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 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 Autoriseer databasetoegang tot SQL Database, SQL Managed Instance en Azure Synapse Analytics 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 doorlopen van de firewall, kunt u een van de volgende oplossingen proberen:
- Vraag uw internetprovider om 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.