Delen via


Zelfstudie: Beveiligen met Microsoft Entra logins - Azure SQL Managed Instance

Applies to:Azure SQL Managed Instance

In dit artikel leert u hoe u server-principals (aanmeldingen) gebruikt die worden ondersteund door Microsoft Entra ID (formerly Azure Active Directory) om een Azure SQL Managed Instance te beveiligen.

In deze handleiding leer je hoe je:

  • Maak een Microsoft Entra-aanmelding voor een met SQL beheerd exemplaar.
  • Verken machtigingen voor aanmeldingen in een met SQL beheerd exemplaar.
  • Maak Microsoft Entra gebruikers van aanmeldingen.
  • Wijs machtigingen toe aan gebruikers en beheer databasebeveiliging.
  • Impersonatie gebruiken bij gebruikers.
  • Gebruik query's voor meerdere databases met gebruikers.
  • Meer informatie over beveiligingsfuncties, zoals beveiliging tegen bedreigingen, controle, gegevensmaskering en versleuteling.

Opmerking

Microsoft Entra ID werd voorheen Azure Active Directory (Azure AD) genoemd.

Vereiste voorwaarden

Zorg ervoor dat u aan de volgende vereisten voldoet om de zelfstudie te voltooien:

Toegang beperken

Beheerde SQL-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-netwerk (VNet) voordat een verbinding tot stand kan worden gebracht. Zie Connect your application to SQL Managed Instance (Uw toepassing verbinden met SQL Managed Instance

Het is ook mogelijk om een service-eindpunt te configureren op een met SQL beheerd exemplaar, waardoor openbare verbindingen op dezelfde manier mogelijk zijn als voor Azure SQL Database. Zie Openbaar eindpunt configureren in Azure SQL Managed Instance voor meer informatie.

Een Microsoft Entra-aanmelding maken met behulp van SSMS

De SQL-beheerder kan het eerste Microsoft Entra-login maken, of de Microsoft Entra-beheerder aanmaken die tijdens de inrichting is gecreëerd. Zie Een Microsoft Entra-beheerder provisioneren voor SQL Managed Instance voor meer informatie.

Zie de volgende artikelen voor voorbeelden van het maken van verbinding met SQL Managed Instance:

  1. Verbind met uw SQL Managed Instance via een sysadmin SQL-login of de Microsoft Entra-beheerder met behulp van SQL Server Management Studio (SSMS).

  2. Klik in Objectverkenner met de rechtermuisknop op de server en kies Nieuwe query.

  3. 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 wordt een aanmelding voor het account nativeuser@aadsqlmi.onmicrosoft.comgemaakt.

    USE master
    GO
    CREATE LOGIN [nativeuser@aadsqlmi.onmicrosoft.com] FROM EXTERNAL PROVIDER
    GO
    
  4. Selecteer Uitvoeren op de werkbalk om de aanmelding te maken.

  5. Controleer de zojuist toegevoegde aanmelding door de volgende T-SQL-opdracht uit te voeren:

    SELECT *
    FROM sys.server_principals;
    GO
    

    Schermopname van het tabblad Resultaten in de SSMS-Objectverkenner met de naam, principal_id, sid, type en type_desc van de zojuist toegevoegde login.

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 maken.

Aanmeldingen voor SQL-verificatie

Als de login een SQL-authenticatie-gebaseerde server-principal is, moet de rol sysadmin worden toegewezen om logins voor Microsoft Entra-accounts te maken.

aanmeldingen voor verificatie Microsoft Entra

  • Als de aanmelding een Microsoft Entra server-principal is, moet deze worden toegewezen aan de serverrol sysadmin of securityadmin 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-logins aan te maken.
  • Standaard zijn de machtigingen die zijn verleend aan nieuw gemaakte Microsoft Entra logins in masterCONNECT SQL en VIEW ANY DATABASE.
  • De serverrol sysadmin kan worden verleend aan veel Microsoft Entra gebruikersaccounts binnen een SQL-beheerd exemplaar.

Volg deze stappen om de inloggegevens toe te voegen aan de sysadmin server role:

  1. Log opnieuw in op het beheerde SQL-exemplaar, of gebruik de bestaande verbinding met de Microsoft Entra-beheerder of SQL-principal die een sysadmin is.

  2. Klik in Objectverkenner met de rechtermuisknop op de server en kies Nieuwe query.

  3. Geef de Microsoft Entra-login de serverrol sysadmin met behulp van de volgende T-SQL-syntaxis:

    ALTER SERVER ROLE sysadmin ADD MEMBER login_name
    GO
    

    In het volgende voorbeeld wordt de sysadmin-serverfunctie aan de aanmelding nativeuser@aadsqlmi.onmicrosoft.comverleend:

    ALTER SERVER ROLE sysadmin ADD MEMBER [nativeuser@aadsqlmi.onmicrosoft.com]
    GO
    

Aanvullende Microsoft Entra aanmeldingen maken met behulp van SSMS

Zodra de Microsoft Entra-login is aangemaakt en sysadmin-bevoegdheden zijn verleend, kan deze login extra logins aanmaken met behulp van de FROM EXTERNAL PROVIDER-clausule met CREATE LOGIN.

  1. Maak verbinding met het beheerde SQL-exemplaar met de Microsoft Entra-aanmelding door Connect to Server te selecteren in SQL Server Management Studio (SSMS).

    1. Voer uw SQL Managed Instance hostnaam in Servernaam in.
    2. Selecteer voor AuthenticationMicrosoft Entra MFA om een aanmeldingsvenster met meervoudige verificatie weer te geven. Meld u aan. Zie Universal Authentication (SSMS-ondersteuning voor meervoudige verificatie) voor meer informatie.
  2. Klik in Objectverkenner met de rechtermuisknop op de server en kies Nieuwe query.

  3. 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 waarbij het domein van aadsqlmi.net is gefedereerd met het Microsoft Entra aadsqlmi.onmicrosoft.com-domein.

    Voer de volgende T-SQL-opdracht uit. Federatieve Microsoft Entra-accounts zijn de SQL Managed Instance vervangingen voor on-premises Windows aanmeldingen en gebruikers.

    USE master
    GO
    CREATE LOGIN [bob@aadsqlmi.net] FROM EXTERNAL PROVIDER
    GO
    
  4. Maak een database in het beheerde SQL-exemplaar met behulp van de syntaxis CREATE DATABASE . Deze database wordt gebruikt om aanmeldingen van gebruikers in de volgende sectie te testen.

    1. Klik in Objectverkenner met de rechtermuisknop op de server en kies Nieuwe query.

    2. Gebruik in het queryvenster de volgende syntaxis om een database met de naam MyMITestDB te maken.

      CREATE DATABASE MyMITestDB;
      GO
      
  5. Maak een SQL Managed Instance-aanmelding voor een groep in Microsoft Entra ID. De groep moet aanwezig zijn in Microsoft Entra ID voordat u de aanmelding toevoegt aan SQL Managed Instance. Zie Maak een basisgroep en voeg leden toe met behulp van Microsoft Entra ID. Maak een groep mygroup en voeg leden toe aan deze groep.

  6. 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
    
  7. Meld u als test aan bij het met SQL beheerde exemplaar met de zojuist gemaakte aanmelding of groep. Open een nieuwe verbinding met het beheerde SQL-exemplaar en gebruik de nieuwe aanmelding bij het verifiëren.

  8. Klik in Objectverkenner met de rechtermuisknop op de server en kies Nieuwe query voor de nieuwe verbinding.

  9. 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
    

De ondersteuning van Microsoft Entra-principals door Azure SQL als gebruikers en aanmeldingen wordt uitgebreid tot interne en externe gastgebruikers van Microsoft Entra Externe id. Gastgebruikers, zowel afzonderlijk als als als onderdeel van een groep, kunnen hetzelfde worden gebruikt als elke andere Microsoft Entra gebruiker in Azure SQL. Als u wilt dat gastgebruikers andere Microsoft Entra serveraanmelding of databasegebruikers kunnen maken, moeten ze gemachtigd zijn om andere identiteiten in de Microsoft Entra-directory te lezen. Deze toestemming is geconfigureerd op directory-niveau. Zie guest access permissions in Microsoft Entra ID voor meer informatie.

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 vanuit een bestaande aanmelding in een database die machtigingen heeft voor die database of die is toegevoegd aan een database-rol.

Nu we een database met de naam MyMITestDB en een aanmelding met alleen standaardmachtigingen hebben gemaakt, is de volgende stap het maken van een gebruiker op basis van die aanmelding. Op dit moment kan de login verbinding maken met het beheerde SQL-exemplaar en alle databases zien, maar kan deze niet interageren met de databases. 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:

Schermopname van een foutbericht van de SSMS-Objectverkenner met de tekst 'De database MyMITestDB is niet toegankelijk. (ObjectExplorer)

Zie Aan de slag met Database Engine Machtigingen voor meer informatie over het verlenen van databasemachtigingen.

Een Microsoft Entra gebruiker maken en een voorbeeldtabel maken

Opmerking

Er zijn enkele beperkingen wanneer een gebruiker zich aanmeldt als onderdeel van een Microsoft Entra groep. Een aanroep naar SUSER_SID retourneert bijvoorbeeld NULL, omdat de opgegeven Microsoft Entra gebruiker geen deel uitmaakt van de tabel sys.server_principals. Daarom kan de toegang tot bepaalde opgeslagen procedures of een lijst met verleende machtigingen in dit geval worden beperkt.

  1. Meld u aan bij uw met SQL beheerde exemplaar met een sysadmin-account in SQL Server Management Studio.

  2. Klik in Objectverkenner met de rechtermuisknop op de server en kies Nieuwe query.

  3. 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
    
  4. Het wordt ook ondersteund om een Microsoft Entra-gebruiker te maken vanuit een Microsoft Entra-groepslogin.

    In het volgende voorbeeld wordt een aanmelding gemaakt voor de Microsoft Entra-groep mygroup die zich in uw Microsoft Entra-tenant bevindt.

    USE MyMITestDB
    GO
    CREATE USER [mygroup] FROM LOGIN [mygroup]
    GO
    

    Alle gebruikers die tot mygroup behoren, hebben toegang tot de MyMITestDB-database .

    Belangrijk

    Wanneer u een USER maakt op basis van een Microsoft Entra-aanmelding, geeft u de user_name op als dezelfde login_name uit LOGIN.

    Zie CREATE USERvoor meer informatie.

  5. Maak in een nieuw queryvenster een testtabel met behulp van de volgende T-SQL-opdracht:

    USE MyMITestDB
    GO
    CREATE TABLE TestTable
    (
    AccountNum varchar(10),
    City varchar(255),
    Name varchar(255),
    State varchar(2)
    );
    
  6. Maak een verbinding in SSMS met de gebruiker die zojuist is aangemaakt. U ziet dat u de tabel TestTable die eerder door de systeembeheerder is gemaakt, niet kunt zien. We moeten de gebruiker machtigingen geven om gegevens uit de database te kunnen lezen.

  7. U kunt de huidige machtiging controleren die de gebruiker heeft door de volgende opdracht uit te voeren:

    SELECT * FROM sys.fn_my_permissions('MyMITestDB','DATABASE')
    GO
    

Gebruikers toevoegen aan rollen op databaseniveau

Om de gebruiker gegevens in de database te laten zien, kunnen we rollen op databaseniveau aan de gebruiker leveren.

  1. Meld u aan bij uw met SQL beheerde exemplaar met een sysadmin-account met behulp van SQL Server Management Studio.

  2. Klik in Objectverkenner met de rechtermuisknop op de server en kies Nieuwe query.

  3. Ken de Microsoft Entra gebruiker de db_datareader databaserol toe door gebruik te maken van de volgende T-SQL-syntax:

    Use <Database Name> -- provide your database name
    ALTER ROLE db_datareader ADD MEMBER user_name
    GO
    

    Het volgende voorbeeld verleent de gebruiker bob@aadsqlmi.net en de groep mygroupdb_datareader-machtigingen op de database MyMITestDB:

    USE MyMITestDB
    GO
    ALTER ROLE db_datareader ADD MEMBER [bob@aadsqlmi.net]
    GO
    ALTER ROLE db_datareader ADD MEMBER [mygroup]
    GO
    
  4. 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
    
  5. Maak een nieuwe verbinding met de SQL-beheerde instantie met de gebruiker die is toegevoegd aan de rol db_datareader.

  6. Vouw de database uit in Objectverkenner om de tabel weer te geven.

    Schermafbeelding van Objectverkenner in SSMS met de mapstructuur voor tabellen in MyMITestDB. De map dbo.TestTable is gemarkeerd.

  7. Open een nieuw queryvenster en voer de volgende SELECT instructie uit:

    SELECT *
    FROM TestTable
    

    Kunt u gegevens uit de tabel zien? U zou zien dat de kolommen worden geretourneerd zoals getoond in de volgende schermopname.

    Schermafbeelding van het tabblad Resultaten in de SSMS-Objectverkenner met de tabelkolomkoppen AccountNum, Plaats, Naam en State.

Microsoft Entra-aanmeldingen imiteren

SQL Managed Instance ondersteunt de imitatie van Microsoft Entra aanmeldingen.

Imitatie testen

  1. Meld u aan bij uw met SQL beheerde exemplaar met een sysadmin-account met behulp van SQL Server Management Studio.

  2. Klik in Objectverkenner met de rechtermuisknop op de server en kies Nieuwe query.

  3. Gebruik in het queryvenster de volgende opdracht om een nieuwe opgeslagen procedure te maken:

    USE MyMITestDB
    GO
    CREATE PROCEDURE dbo.usp_Demo
    WITH EXECUTE AS 'bob@aadsqlmi.net'
    AS
    SELECT user_name();
    GO
    
  4. Gebruik de volgende opdracht om te zien dat de gebruiker die u nabootst tijdens het uitvoeren van de opgeslagen procedure is bob@aadsqlmi.net.

    Exec dbo.usp_Demo
    
  5. Test imitatie met behulp van de EXECUTE AS LOGIN instructie:

    EXECUTE AS LOGIN = 'bob@aadsqlmi.net'
    GO
    SELECT SUSER_SNAME()
    REVERT
    GO
    

Opmerking

Alleen aanmeldingen op SQL-serverniveau die deel uitmaken van de rol sysadmin kunnen de volgende bewerkingen uitvoeren die zijn gericht op Microsoft Entra principals:

  • EXECUTE AS USER
  • EXECUTE AS LOGIN

Query's voor meerdere 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 deze al bestaat.

  1. Meld u aan bij uw met SQL beheerde exemplaar met een sysadmin-account met behulp van SQL Server Management Studio.

  2. Klik in Objectverkenner met de rechtermuisknop op de server en kies Nieuwe query.

  3. Gebruik in het queryvenster de volgende opdracht om een database met de naam MyMITestDB2 en tabel met de naam TestTable2 te maken:

    CREATE DATABASE MyMITestDB2;
    GO
    USE MyMITestDB2
    GO
    CREATE TABLE TestTable2
    (
    EmpId varchar(10),
    FirstName varchar(255),
    LastName varchar(255),
    Status varchar(10)
    );
    
  4. Voer in een nieuw queryvenster de volgende opdracht uit om de gebruiker mygroup te maken in de nieuwe database MyMITestDB2 en machtigingen voor die database te verlenen SELECT aan mygroup:

    USE MyMITestDB2
    GO
    CREATE USER [mygroup] FROM LOGIN [mygroup]
    GO
    GRANT SELECT TO [mygroup]
    GO
    
  5. Meld u aan bij de beheerde SQL-instance met SQL Server Management Studio als lid van de Microsoft Entra-groep mygroup. Open een nieuw queryvenster en voer de instructie voor meerdere databases SELECT uit:

    USE MyMITestDB
    SELECT * FROM MyMITestDB2..TestTable2
    GO
    

    U ziet nu de tabelresultaten van TestTable2.

Aanvullende ondersteunde scenario's

  • SQL Agent-beheer en taakuitvoeringen worden ondersteund voor Microsoft Entra aanmeldingen.
  • Microsoft Entra aanmeldingen kunnen databaseback-up- en herstelbewerkingen uitvoeren.
  • Auditing van alle uitspraken over Microsoft Entra aanmeldings- en verificatiegebeurtenissen.
  • Gereserveerde beheerdersverbinding voor Microsoft Entra-aanmeldingen die lid zijn van de serverrol sysadmin.
  • Microsoft Entra aanmeldingen worden ondersteund met het hulpprogramma sqlcmd en 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.