Zelfstudie: Beveiligen met Microsoft Entra-aanmeldingen - Azure SQL Managed Instance
Van toepassing op: Azure SQL Managed Instance
In dit artikel leert u hoe u server-principals (aanmeldingen) gebruikt die worden ondersteund door Microsoft Entra ID (voorheen Azure Active Directory) om een met Azure SQL beheerd exemplaar te beveiligen.
In deze zelfstudie leert u het volgende:
- Een Microsoft Entra-aanmelding voor een beheerd exemplaar maken
- Machtigingen verlenen voor aanmeldingen in een beheerd exemplaar
- Microsoft Entra-gebruikers maken vanuit aanmeldingen
- Machtigingen toewijzen aan gebruikers en databasebeveiliging beheren
- Imitatie gebruiken met gebruikers
- Query's voor meerdere databases gebruiken met gebruikers
- Leren over beveiligingsfuncties, zoals beveiliging tegen bedreigingen, controle, gegevensmaskering en versleuteling
Notitie
Microsoft Entra-id is de nieuwe naam voor Azure Active Directory (Azure AD). Op dit moment wordt de documentatie bijgewerkt.
Vereisten
Zorg dat u over het volgende beschikt als u de zelfstudie wilt uitvoeren:
- SQL Server Management Studio (SSMS)
- Een beheerd exemplaar
- Volg dit artikel: Quickstart: Een beheerd exemplaar maken
- U hebt toegang tot uw beheerde exemplaar en een Microsoft Entra-beheerder ingericht voor het beheerde exemplaar. Zie voor meer informatie:
Toegang beperken
Beheerde exemplaren kunnen worden geopend via een privé-IP-adres. Net als bij een geïsoleerde SQL Server-omgeving hebben toepassingen of gebruikers toegang nodig tot het SQL Managed Instance Network (VNet) voordat er een verbinding tot stand kan worden gebracht. Raadpleeg Uw toepassing verbinden met SQL Managed Instance voor meer informatie.
Het is ook mogelijk om een service-eindpunt te configureren op een beheerd exemplaar, waarmee openbare verbindingen kunnen worden ingesteld op dezelfde manier als voor Azure SQL Database. Raadpleeg Openbaar eindpunt configureren in Azure SQL Managed Instance voor meer informatie.
Een Microsoft Entra-aanmelding maken met behulp van SSMS
De eerste Microsoft Entra-aanmelding kan worden gemaakt door de SQL-beheerder of de Microsoft Entra-beheerder die is gemaakt tijdens het inrichten. Zie Een Microsoft Entra-beheerder inrichten voor SQL Managed Instance voor meer informatie.
Zie de volgende artikelen voor voorbeelden van het maken van een verbinding met SQL Managed Instance:
- Quickstart: Azure VM configureren om verbinding te maken met SQL Managed Instance
- Quickstart: Een punt-naar-site-verbinding met SQL Managed Instance configureren vanuit on-premises
Verbinding maken naar uw beheerde exemplaar met een van beide
sysadmin
SQL-aanmelding of de Microsoft Entra-beheerder met behulp van SQL Server Management Studio (SSMS).Klik in Objectverkenner met de rechtermuisknop op de server en kies Nieuwe query.
Gebruik in het queryvenster de volgende syntaxis om een aanmelding te maken voor een lokaal Microsoft Entra-account:
USE master GO CREATE LOGIN login_name FROM EXTERNAL PROVIDER GO
In dit voorbeeld maakt u een aanmelding voor het account nativeuser@aadsqlmi.onmicrosoft.com.
USE master GO CREATE LOGIN [nativeuser@aadsqlmi.onmicrosoft.com] FROM EXTERNAL PROVIDER GO
Selecteer Uitvoeren op de werkbalk om de aanmelding te maken.
Controleer de zojuist toegevoegde aanmelding door de volgende T-SQL-opdracht uit te voeren:
SELECT * FROM sys.server_principals; GO
Zie CREATE LOGIN voor meer informatie.
Machtigingen verlenen om aanmeldingen te maken
Bestaande aanmeldingen moeten over de juiste machtigingen beschikken of deel uitmaken van de juiste serverfuncties om andere Microsoft Entra-aanmeldingen te kunnen maken.
Aanmeldingen voor SQL-verificatie
- Als de aanmelding een server-principal op basis van SQL-verificatie is, moet deze de
sysadmin
rol krijgen om aanmeldingen te maken voor Microsoft Entra-accounts.
Aanmeldingen voor Microsoft Entra-verificatie
- Als de aanmelding een Microsoft Entra-server-principal is, moet deze worden toegewezen aan de
sysadmin
ofsecurityadmin
serverrol om aanmeldingen te maken voor andere Microsoft Entra-gebruikers, -groepen en -toepassingen. - Minimaal moet de MACHTIGING ALTER ANY LOGIN worden verleend om andere Microsoft Entra-aanmeldingen te maken.
- Standaard zijn de standaardmachtigingen die zijn verleend aan nieuw gemaakte Microsoft Entra-aanmeldingen
master
: CONNECT SQL en VIEW ANY DATABASE. - De
sysadmin
serverrol kan worden verleend aan veel Microsoft Entra-aanmeldingen binnen een beheerd exemplaar.
Ga als volgt te werk om de aanmelding toe te voegen aan de sysadmin
-serverrol:
Meld u opnieuw aan bij het beheerde exemplaar of gebruik de bestaande verbinding met de Microsoft Entra-beheerder of SQL-principal die een
sysadmin
.Klik in Objectverkenner met de rechtermuisknop op de server en kies Nieuwe query.
Verdeel de Microsoft Entra-aanmelding de
sysadmin
serverfunctie met behulp van de volgende T-SQL-syntaxis:ALTER SERVER ROLE sysadmin ADD MEMBER login_name GO
In het volgende voorbeeld wordt de
sysadmin
-serverrol verleend aan de aanmelding nativeuser@aadsqlmi.onmicrosoft.comALTER SERVER ROLE sysadmin ADD MEMBER [nativeuser@aadsqlmi.onmicrosoft.com] GO
Aanvullende Microsoft Entra-aanmeldingen maken met behulp van SSMS
Zodra de Microsoft Entra-aanmelding is gemaakt en bevoegdheden heeft verleend sysadmin
, kan die aanmelding extra aanmeldingen maken met behulp van de COMPONENT FROM EXTERNAL PROVIDER met CREATE LOGIN.
Verbinding maken met de microsoft Entra-aanmelding bij het beheerde exemplaar door Verbinding maken te selecteren op Server in SQL Server Management Studio (SSMS).
- Voer de hostnaam van uw SQL Managed Instance in servernaam in.
- Voor verificatie selecteert u Active Directory - Universeel met MFA-ondersteuning om een aanmeldingsvenster met meervoudige verificatie weer te geven. Meld u aan. Zie Universal Authentication (SSMS-ondersteuning voor meervoudige verificatie) voor meer informatie.
Klik in Objectverkenner met de rechtermuisknop op de server en kies Nieuwe query.
Gebruik in het queryvenster de volgende syntaxis om een aanmelding te maken voor een ander Microsoft Entra-account:
USE master GO CREATE LOGIN login_name FROM EXTERNAL PROVIDER GO
In dit voorbeeld wordt een aanmelding gemaakt voor de Microsoft Entra-gebruiker bob@aadsqlmi.net, waarvan het domein aadsqlmi.net is gefedereerd met het domein Microsoft Entra aadsqlmi.onmicrosoft.com.
Voer de volgende T-SQL-opdracht uit. Federatieve Microsoft Entra-accounts zijn de vervangingen van SQL Managed Instance voor on-premises Windows-aanmeldingen en -gebruikers.
USE master GO CREATE LOGIN [bob@aadsqlmi.net] FROM EXTERNAL PROVIDER GO
Maak een database in het beheerd exemplaar met behulp van de CREATE DATABASE-syntaxis. Deze database wordt gebruikt voor het testen van aanmeldingen in de volgende sectie.
Klik in Objectverkenner met de rechtermuisknop op de server en kies Nieuwe query.
Gebruik in het queryvenster de volgende syntaxis om een database te maken met de naam MyMITestDB.
CREATE DATABASE MyMITestDB; GO
Maak een sql Managed Instance-aanmelding voor een groep in Microsoft Entra-id. De groep moet bestaan in De Microsoft Entra-id voordat u de aanmelding toevoegt aan SQL Managed Instance. Zie Een basisgroep maken en leden toevoegen met behulp van Microsoft Entra-id. Maak een groep met de naam mygroup en voeg leden toe aan deze groep.
Open een nieuw queryvenster in SQL Server Management Studio.
In dit voorbeeld wordt ervan uitgegaan dat er een groep bestaat met de naam mygroup in Microsoft Entra-id. Voer de volgende opdracht uit:
USE master GO CREATE LOGIN [mygroup] FROM EXTERNAL PROVIDER GO
Als test meldt u zich aan bij het beheerde exemplaar met de zojuist gemaakte aanmelding of groep. Open een nieuwe verbinding naar het beheerde exemplaar en gebruik de nieuwe aanmelding voor verificatie.
Klik in Objectverkenner met de rechtermuisknop op de server en kies Nieuwe query als nieuwe verbinding.
Controleer de servermachtigingen voor de zojuist gemaakte Microsoft Entra-aanmelding door de volgende opdracht uit te voeren:
SELECT * FROM sys.fn_my_permissions (NULL, 'DATABASE') GO
Gastgebruikers worden ondersteund als afzonderlijke gebruikers (zonder deel te uitmaken van een Microsoft Entra-groep (hoewel ze kunnen zijn)) en de aanmeldingen kunnen rechtstreeks worden gemaakt master
(bijvoorbeeld joe@contoso.con) met behulp van de huidige aanmeldingssyntaxis.
Een Microsoft Entra-gebruiker maken op basis van de Microsoft Entra-aanmelding
Autorisatie voor afzonderlijke databases werkt op dezelfde manier in SQL Managed Instance als bij databases in SQL Server. U kunt een gebruiker maken op basis van een bestaande aanmelding in een database waaraan machtigingen zijn verleend voor die database of die is toegevoegd aan een databaserol.
Nu we een database met de naam MyMITestDB hebben gemaakt plus een aanmelding met alleen standaardmachtigingen, bestaat de volgende stap uit het maken van een gebruiker op basis van deze aanmelding. Op dit moment kan de aanmelding verbinding maken met het beheerde exemplaar en alle databases zien, maar er kan niet met de databases worden gecommuniceerd. Als u zich aanmeldt met het Microsoft Entra-account met de standaardmachtigingen en de zojuist gemaakte database probeert uit te vouwen, ziet u de volgende fout:
Zie Aan de slag met machtigingen voor database-engines voor meer informatie over het verlenen van databasemachtigingen.
Een Microsoft Entra-gebruiker maken en een voorbeeldtabel maken
Notitie
Er gelden enkele beperkingen wanneer een gebruiker zich aanmeldt als onderdeel van een Microsoft Entra-groep.
Bijvoorbeeld een aanroep om terug te SUSER_SID
keren NULL
, omdat de opgegeven Microsoft Entra-gebruiker geen deel uitmaakt van de sys.server_principals
tabel.
Daarom kan de toegang tot bepaalde opgeslagen procedures of een lijst met verleende machtigingen in dit geval worden beperkt.
Meld u aan bij uw beheerde exemplaar met behulp van een
sysadmin
-account via SQL Server Management Studio.Klik in Objectverkenner met de rechtermuisknop op de server en kies Nieuwe query.
Gebruik in het queryvenster de volgende syntaxis om een gebruiker te maken op basis van een Microsoft Entra-aanmelding:
USE <Database Name> -- provide your database name GO CREATE USER user_name FROM LOGIN login_name GO
In het volgende voorbeeld wordt een gebruiker bob@aadsqlmi.net gemaakt op basis van de aanmelding bob@aadsqlmi.net:
USE MyMITestDB GO CREATE USER [bob@aadsqlmi.net] FROM LOGIN [bob@aadsqlmi.net] GO
Het wordt ook ondersteund om een Microsoft Entra-gebruiker te maken op basis van een Microsoft Entra-aanmelding die een groep is.
In het volgende voorbeeld wordt een aanmelding gemaakt voor de Microsoft Entra-groep mygroup die bestaat in uw Microsoft Entra-tenant.
USE MyMITestDB GO CREATE USER [mygroup] FROM LOGIN [mygroup] GO
Alle gebruikers die deel uitmaken van mygroup, hebben toegang tot de MyMITestDB-database.
Belangrijk
Wanneer u een gebruiker maakt op basis van een Microsoft Entra-aanmelding, geeft u de user_name op als dezelfde login_name van LOGIN.
Zie CREATE USER voor meer informatie.
Maak in een nieuw queryvenster een testtabel met de volgende T-SQL-opdracht:
USE MyMITestDB GO CREATE TABLE TestTable ( AccountNum varchar(10), City varchar(255), Name varchar(255), State varchar(2) );
Maak een verbinding in SSMS met de gebruiker die is gemaakt. U merkt dat de tabel TestTable die eerder door de
sysadmin
werd gemaakt, niet is te zien. De gebruiker heeft machtigingen nodig voor het lezen van gegevens uit de database.U kunt nagaan wat de huidige machtigingen van de gebruiker zijn door de volgende opdracht uit te voeren:
SELECT * FROM sys.fn_my_permissions('MyMITestDB','DATABASE') GO
Gebruikers toevoegen aan rollen op databaseniveau
Om ervoor te zorgen dat de gebruiker de gegevens in de database kan zien, geven we rollen op databaseniveau aan de gebruiker.
Meld u aan bij uw beheerde exemplaar met behulp van een
sysadmin
-account via SQL Server Management Studio.Klik in Objectverkenner met de rechtermuisknop op de server en kies Nieuwe query.
Verdeel de Microsoft Entra-gebruiker de
db_datareader
databaserol met behulp van de volgende T-SQL-syntaxis:Use <Database Name> -- provide your database name ALTER ROLE db_datareader ADD MEMBER user_name GO
In het volgende voorbeeld krijgen de gebruiker bob@aadsqlmi.net en de groep mygroup
db_datareader
machtigingen voor de MyMITestDB-database:USE MyMITestDB GO ALTER ROLE db_datareader ADD MEMBER [bob@aadsqlmi.net] GO ALTER ROLE db_datareader ADD MEMBER [mygroup] GO
Controleer of de Microsoft Entra-gebruiker die in de database is gemaakt, bestaat door de volgende opdracht uit te voeren:
SELECT * FROM sys.database_principals GO
Maak een nieuwe verbinding naar het beheerd exemplaar met de gebruiker die is toegevoegd aan de
db_datareader
-rol.Vouw de database in Objectverkenner uit om de tabel weer te geven.
Open een nieuw queryvenster en voer de volgende SELECT-instructie uit:
SELECT * FROM TestTable
Kunt u gegevens uit de tabel zien? De kolommen zouden moeten worden geretourneerd.
Microsoft Entra-aanmeldingen imiteren
SQL Managed Instance ondersteunt de imitatie van Microsoft Entra-aanmeldingen.
Imitatie testen
Meld u aan bij uw beheerde exemplaar met behulp van een
sysadmin
-account via SQL Server Management Studio.Klik in Objectverkenner met de rechtermuisknop op de server en kies Nieuwe query.
Voer in het queryvenster de volgende opdracht uit om een opgeslagen procedure te maken:
USE MyMITestDB GO CREATE PROCEDURE dbo.usp_Demo WITH EXECUTE AS 'bob@aadsqlmi.net' AS SELECT user_name(); GO
Gebruik de volgende opdracht om weer te geven dat de gebruiker die u imiteert bij het uitvoeren van de opgeslagen procedure bob@aadsqlmi.net is.
Exec dbo.usp_Demo
Test de imitatie met behulp van de instructie EXECUTE AS LOGIN:
EXECUTE AS LOGIN = 'bob@aadsqlmi.net' GO SELECT SUSER_SNAME() REVERT GO
Notitie
Alleen aanmeldingen op SQL-serverniveau die deel uitmaken van de sysadmin
rol kunnen de volgende bewerkingen uitvoeren die gericht zijn op Microsoft Entra-principals:
- EXECUTE AS USER
- EXECUTE AS LOGIN
Query's tussen databases gebruiken
Query's tussen databases worden ondersteund voor Microsoft Entra-accounts met Microsoft Entra-aanmeldingen. Als u een query voor meerdere databases wilt testen met een Microsoft Entra-groep, moet u een andere database en tabel maken. U kunt het maken van een andere database en tabel overslaan als die al bestaan.
Meld u aan bij uw beheerde exemplaar met behulp van een
sysadmin
-account via SQL Server Management Studio.Klik in Objectverkenner met de rechtermuisknop op de server en kies Nieuwe query.
Gebruik in het queryvenster de volgende opdracht om een database te maken met de naam MyMITestDB2 en een tabel met de naam TestTable2:
CREATE DATABASE MyMITestDB2; GO USE MyMITestDB2 GO CREATE TABLE TestTable2 ( EmpId varchar(10), FirstName varchar(255), LastName varchar(255), Status varchar(10) );
Voer in een nieuw queryvenster de volgende opdracht uit om de gebruiker mygroup te maken in de nieuwe database MyMITestDB2 en SELECT-machtigingen voor die database te verlenen aan mygroup:
USE MyMITestDB2 GO CREATE USER [mygroup] FROM LOGIN [mygroup] GO GRANT SELECT TO [mygroup] GO
Meld u aan bij het beheerde exemplaar met BEHULP van SQL Server Management Studio als lid van de Microsoft Entra-groep mygroup. Open een nieuw queryvenster en voer de volgende SELECT-instructie tussen meerdere databases uit:
USE MyMITestDB SELECT * FROM MyMITestDB2..TestTable2 GO
U krijgt dan de tabelresultaten uit TestTable2 te zien.
Aanvullende ondersteunde scenario's
- SQL Agent-beheer en taakuitvoeringen worden ondersteund voor Microsoft Entra-aanmeldingen.
- Back-up- en herstelbewerkingen voor databases kunnen worden uitgevoerd door Microsoft Entra-aanmeldingen.
- Controle van alle instructies met betrekking tot Microsoft Entra-aanmeldingen en verificatie-gebeurtenissen.
- Toegewezen beheerdersverbinding voor Microsoft Entra-aanmeldingen die lid zijn van de
sysadmin
serverrol. - Microsoft Entra-aanmeldingen worden ondersteund met behulp van het hulpprogramma sqlcmd en het hulpprogramma SQL Server Management Studio.
- Aanmeldingstriggers worden ondersteund voor aanmeldingsevenementen die afkomstig zijn van Microsoft Entra-aanmeldingen.
- Service Broker en DB-e-mail kunnen worden ingesteld met behulp van Microsoft Entra-aanmeldingen.
Volgende stappen
Beveiligingsfuncties inschakelen
Zie het artikel Beveiligingsfuncties van SQL Managed Instance voor een uitgebreide lijst met manieren om uw database te beveiligen. De volgende beveiligingsfuncties worden besproken:
- SQL Managed Instance-controle
- Altijd versleuteld
- Detectie van bedreigingen
- Dynamische gegevensmaskering
- Beveiliging op rijniveau
- TDE (Transparent Data Encryption)
Mogelijkheden van SQL Managed Instance
Een volledig overzicht van de mogelijkheden van SQL Managed Instance is hier te vinden: