Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
              gäller för:Azure SQL Managed Instance
I den här artikeln lär du dig att använda serverhuvudnamn (inloggningar) som backas upp av Microsoft Entra ID (tidigare Azure Active Directory) för att skydda en Azure SQL Managed Instance.
I den här tutorialen lär du dig följande:
- Skapa en Microsoft Entra-inloggning för en SQL-hanterad instans.
- Bevilja behörigheter till inloggningar i en SQL-hanterad instans.
- Skapa Microsoft Entra-användare från inloggningar.
- Tilldela behörigheter till användare och hantera databassäkerhet.
- Använd personifiering med användare.
- Använd frågor mellan databaser med användare.
- Lär dig mer om säkerhetsfunktioner, till exempel skydd mot hot, granskning, datamaskering och kryptering.
Anmärkning
Microsoft Entra-ID kallades tidigare Azure Active Directory (Azure AD).
Förutsättningar
Kontrollera att du har följande förutsättningar för att slutföra självstudien:
- SQL Server Management Studio (SSMS)
- En SQL-hanterad instans - Följ den här artikeln: Snabbstart: Skapa en SQL-hanterad instans
 
- Kunna komma åt din SQL-hanterade instans och etablera en Microsoft Entra-administratör för den SQL-hanterade instansen. Mer information finns i:
Begränsa åtkomst
SQL-hanterade instanser kan nås via en privat IP-adress. Precis som en isolerad SQL Server-miljö behöver program eller användare åtkomst till SQL Managed Instance-nätverket (VNet) innan en anslutning kan upprättas. Mer information finns i Ansluta ditt program till SQL Managed Instance.
Det går också att konfigurera en tjänstslutpunkt på en SQL-hanterad instans, vilket möjliggör offentliga anslutningar på samma sätt som för Azure SQL Database. Mer information finns i Konfigurera offentlig slutpunkt i Azure SQL Managed Instance.
Skapa en Microsoft Entra-inloggning med hjälp av SSMS
SQL-administratören kan skapa den första Microsoft Entra-inloggningen eller Microsoft Entra-administratören som skapades under etableringen. Mer information finns i Etablera en Microsoft Entra-administratör för SQL Managed Instance.
I följande artiklar finns exempel på hur du ansluter till SQL Managed Instance:
- Snabbstart: Konfigurera en virtuell Azure-dator för att ansluta till SQL Managed Instance
- Snabbstart: Konfigurera en punkt-till-plats-anslutning till SQL Managed Instance från en lokal plats
- Anslut till din SQL-hanterade instans med antingen en sysadmin SQL-inloggning eller Microsoft Entra-administratören med hjälp av SQL Server Management Studio (SSMS). 
- Högerklicka på servern i Object Explorer och välj Ny fråga. 
- I frågefönstret använder du följande syntax för att skapa en inloggning för ett lokalt Microsoft Entra-konto: - USE master GO CREATE LOGIN login_name FROM EXTERNAL PROVIDER GO- I det här exemplet skapas en inloggning för kontot - nativeuser@aadsqlmi.onmicrosoft.com.- USE master GO CREATE LOGIN [nativeuser@aadsqlmi.onmicrosoft.com] FROM EXTERNAL PROVIDER GO
- I verktygsfältet väljer du Kör för att skapa inloggningen. 
- Kontrollera den nyligen tillagda inloggningen genom att köra följande T-SQL-kommando: - SELECT * FROM sys.server_principals; GO  
Mer information finns i SKAPA INLOGGNING.
Bevilja behörigheter för att skapa inloggningar
Befintliga inloggningar måste ha lämpliga behörigheter eller vara en del av lämpliga serverroller för att skapa andra Microsoft Entra-inloggningar.
SQL-autentiseringsinloggningar
Om inloggningen är ett SQL-autentiseringsbaserat serverhuvudnamn måste den tilldelas rollen sysadmin för att skapa inloggningar för Microsoft Entra-konton.
Microsoft Entra-autentiseringsinloggningar
- Om inloggningen är ett Microsoft Entra-serverhuvudnamn måste den tilldelas antingen serverrollen sysadmin eller securityadmin för att skapa inloggningar för andra Microsoft Entra-användare, grupper och program.
- Minst måste behörigheten ALTER ANY LOGINbeviljas för att skapa andra Microsoft Entra-inloggningar.
- Standardbehörigheterna som beviljats nyligen skapade Microsoft Entra-inloggningar i masterärCONNECT SQLochVIEW ANY DATABASE.
- Sysadmin-serverrollen kan beviljas för många Microsoft Entra-inloggningar i en SQL-hanterad instans.
Så här lägger du till inloggningen i sysadmin-serverrollen :
- Logga in på den SQL-hanterade instansen igen eller använd den befintliga anslutningen med Microsoft Entra-administratören eller SQL-huvudnamnet som är en sysadmin. 
- Högerklicka på servern i Object Explorer och välj Ny fråga. 
- Bevilja Microsoft Entra-inloggningen till sysadmin-serverrollen med hjälp av följande T-SQL-syntax: - ALTER SERVER ROLE sysadmin ADD MEMBER login_name GO- I följande exempel tilldelas sysadmin-serverrollen till inloggningen - nativeuser@aadsqlmi.onmicrosoft.com:- ALTER SERVER ROLE sysadmin ADD MEMBER [nativeuser@aadsqlmi.onmicrosoft.com] GO
Skapa ytterligare Microsoft Entra-inloggningar med hjälp av SSMS
När Microsoft Entra-inloggningen har skapats och beviljats sysadmin-behörighet kan inloggningen FROM EXTERNAL PROVIDER skapa ytterligare inloggningar med hjälp av -satsen med CREATE LOGIN.
- Anslut till den SQL-hanterade instansen med Microsoft Entra-inloggningen genom att välja Anslut till server i SQL Server Management Studio (SSMS). - Ange ditt SQL Managed Instance-värdnamn i Servernamn.
- För Autentisering väljer du Microsoft Entra MFA för att skapa ett inloggningsfönster för multifaktorautentisering. Logga in. Mer information finns i Universell autentisering (SSMS-stöd för multifaktorautentisering).
 
- Högerklicka på servern i Object Explorer och välj Ny fråga. 
- I frågefönstret använder du följande syntax för att skapa en inloggning för ett annat Microsoft Entra-konto: - USE master GO CREATE LOGIN login_name FROM EXTERNAL PROVIDER GO- Det här exemplet skapar en inloggning för Microsoft Entra-användaren - bob@aadsqlmi.net, vars domän- aadsqlmi.netär federerad med Microsoft Entra-domänen- aadsqlmi.onmicrosoft.com.- Kör följande T-SQL-kommando. Federerade Microsoft Entra-konton är SQL Managed Instance-ersättningar för lokala Windows-inloggningar och -användare. - USE master GO CREATE LOGIN [bob@aadsqlmi.net] FROM EXTERNAL PROVIDER GO
- Skapa en databas i den SQL-hanterade instansen med syntaxen CREATE DATABASE . Den här databasen används för att testa användarinloggningar i nästa avsnitt. - Högerklicka på servern i Object Explorer och välj Ny fråga. 
- I frågefönstret använder du följande syntax för att skapa en databas med namnet MyMITestDB. - CREATE DATABASE MyMITestDB; GO
 
- Skapa en SQL Managed Instance-inloggning för en grupp i Microsoft Entra-ID. Gruppen måste finnas i Microsoft Entra-ID innan inloggningen läggs till i SQL Managed Instance. Se Skapa en grundläggande grupp och lägg till medlemmar med hjälp av Microsoft Entra-ID. Skapa en grupp mygroup och lägg till medlemmar i den här gruppen. 
- Öppna ett nytt frågefönster i SQL Server Management Studio. - Det här exemplet förutsätter att det finns en grupp med namnet mygroup i Microsoft Entra-ID. Kör följande kommando: - USE master GO CREATE LOGIN [mygroup] FROM EXTERNAL PROVIDER GO
- Som ett test loggar du in på den SQL-hanterade instansen med den nyligen skapade inloggningen eller gruppen. Öppna en ny anslutning till den HANTERADE SQL-instansen och använd den nya inloggningen när du autentiserar. 
- Högerklicka på servern i Object Explorer och välj Ny fråga för den nya anslutningen. 
- Kontrollera serverbehörigheterna för den nyligen skapade Microsoft Entra-inloggningen genom att köra följande kommando: - SELECT * FROM sys.fn_my_permissions (NULL, 'DATABASE') GO
Azure SQL:s stöd för Microsoft Entra-huvudnamn när användare och inloggningar utökas till interna och externa gästanvändare i Microsoft Entra. Gästanvändare, både individuellt och som en del av en grupp, kan användas på samma sätt som andra Microsoft Entra-användare i Azure SQL. Om du vill att gästanvändare ska kunna skapa andra Microsoft Entra-serverinloggningar eller databasanvändare måste de ha behörighet att läsa andra identiteter i Microsoft Entra-katalogen. Den här behörigheten konfigureras på katalognivå. Mer information finns i behörigheter för gäståtkomst i Microsoft Entra-ID.
Skapa en Microsoft Entra-användare från Microsoft Entra-inloggningen
Auktorisering till enskilda databaser fungerar ungefär på samma sätt i SQL Managed Instance som med databaser i SQL Server. Du kan skapa en användare från en befintlig inloggning i en databas som har beviljats behörighet till databasen eller lagts till i en databasroll.
Nu när vi har skapat en databas med namnet MyMITestDB och en inloggning som bara har standardbehörigheter är nästa steg att skapa en användare från inloggningen. För närvarande kan inloggningen ansluta till den SQL-hanterade instansen och se alla databaser, men den kan inte interagera med databaserna. Om du loggar in med Microsoft Entra-kontot som har standardbehörigheterna och försöker expandera den nyligen skapade databasen visas följande fel:
               
              
            
Mer information om hur du beviljar databasbehörigheter finns i Komma igång med databasmotorbehörigheter.
Skapa en Microsoft Entra-användare och skapa en exempeltabell
Anmärkning
Det finns vissa begränsningar när en användare loggar in som en del av en Microsoft Entra-grupp.
Ett anrop till returnerar NULLtill SUSER_SID exempel , eftersom den angivna Microsoft Entra-användaren inte ingår i tabellen sys.server_principals.
Därför kan åtkomsten till vissa lagrade procedurer eller en lista över beviljade behörigheter begränsas i det här fallet.
- Logga in på din SQL-hanterade instans med ett sysadmin-konto i SQL Server Management Studio. 
- Högerklicka på servern i Object Explorer och välj Ny fråga. 
- I frågefönstret använder du följande syntax för att skapa en användare från en Microsoft Entra-inloggning: - USE <Database Name> -- provide your database name GO CREATE USER user_name FROM LOGIN login_name GO- I följande exempel skapas en användare - bob@aadsqlmi.netfrån inloggningen- bob@aadsqlmi.net:- USE MyMITestDB GO CREATE USER [bob@aadsqlmi.net] FROM LOGIN [bob@aadsqlmi.net] GO
- Det stöds också för att skapa en Microsoft Entra-användare från en Microsoft Entra-inloggning som är en grupp. - I följande exempel skapas en inloggning för Microsoft Entra-gruppen mygroup som finns i din Microsoft Entra-klientorganisation: - USE MyMITestDB GO CREATE USER [mygroup] FROM LOGIN [mygroup] GO- Alla användare som tillhör mygroup kan komma åt MyMITestDB-databasen . - Viktigt! - När du skapar en ANVÄNDARE från en Microsoft Entra-inloggning anger du user_name som samma login_name från - LOGIN.- Mer information finns i CREATE USER. 
- I ett nytt frågefönster skapar du en testtabell med följande T-SQL-kommando: - USE MyMITestDB GO CREATE TABLE TestTable ( AccountNum varchar(10), City varchar(255), Name varchar(255), State varchar(2) );
- Skapa en anslutning i SSMS med den användare som skapades. Du kommer att märka att du inte kan se tabellen TestTable som skapades av sysadmin tidigare. Vi måste ge användaren behörighet att läsa data från databasen. 
- Du kan kontrollera den aktuella behörighet som användaren har genom att köra följande kommando: - SELECT * FROM sys.fn_my_permissions('MyMITestDB','DATABASE') GO
Lägga till användare i roller på databasnivå
För att användaren ska kunna se data i databasen kan vi tillhandahålla roller på databasnivå till användaren.
- Logga in på din SQL-hanterade instans med ett sysadmin-konto med SQL Server Management Studio. 
- Högerklicka på servern i Object Explorer och välj Ny fråga. 
- Ge Microsoft Entra-användaren db_datareader databasrollen med hjälp av följande T-SQL-syntax: - Use <Database Name> -- provide your database name ALTER ROLE db_datareader ADD MEMBER user_name GO- I följande exempel får användaren - bob@aadsqlmi.netoch gruppen mygroupdb_datareader behörigheter för MyMITestDB-databasen :- USE MyMITestDB GO ALTER ROLE db_datareader ADD MEMBER [bob@aadsqlmi.net] GO ALTER ROLE db_datareader ADD MEMBER [mygroup] GO
- Kontrollera att Microsoft Entra-användaren som skapades i databasen finns genom att köra följande kommando: - SELECT * FROM sys.database_principals GO
- Skapa en ny anslutning till den SQL-hanterade instansen med den användare som har lagts till i rollen db_datareader . 
- Expandera databasen i Object Explorer för att se tabellen.   
- Öppna ett nytt frågefönster och kör följande - SELECTinstruktion:- SELECT * FROM TestTable- Kan du se data från tabellen? Du bör se de kolumner som returneras enligt följande skärmbild:   
Personifiera Microsoft Entra-inloggningar
SQL Managed Instance stöder personifiering av Microsoft Entra-inloggningar.
Testpersonifiering
- Logga in på din SQL-hanterade instans med ett sysadmin-konto med SQL Server Management Studio. 
- Högerklicka på servern i Object Explorer och välj Ny fråga. 
- I frågefönstret använder du följande kommando för att skapa en ny lagrad procedur: - USE MyMITestDB GO CREATE PROCEDURE dbo.usp_Demo WITH EXECUTE AS 'bob@aadsqlmi.net' AS SELECT user_name(); GO
- Använd följande kommando för att se att den användare som du personifierar när du kör den lagrade proceduren är - bob@aadsqlmi.net.- Exec dbo.usp_Demo
- Testa personifiering med hjälp av -instruktionen - EXECUTE AS LOGIN:- EXECUTE AS LOGIN = 'bob@aadsqlmi.net' GO SELECT SUSER_SNAME() REVERT GO
Anmärkning
Endast inloggningar på SQL-servernivå som ingår i sysadmin-rollen kan utföra följande åtgärder för Microsoft Entra-huvudnamn:
- EXECUTE AS USER
- EXECUTE AS LOGIN
Använda frågor mellan databaser
Frågor mellan databaser stöds för Microsoft Entra-konton med Microsoft Entra-inloggningar. För att testa en fråga mellan databaser med en Microsoft Entra-grupp måste vi skapa en annan databas och tabell. Du kan hoppa över att skapa en annan databas och tabell om en redan finns.
- Logga in på din SQL-hanterade instans med ett sysadmin-konto med SQL Server Management Studio. 
- Högerklicka på servern i Object Explorer och välj Ny fråga. 
- I frågefönstret använder du följande kommando för att skapa en databas med namnet MyMITestDB2 och tabellen TestTable2: - CREATE DATABASE MyMITestDB2; GO USE MyMITestDB2 GO CREATE TABLE TestTable2 ( EmpId varchar(10), FirstName varchar(255), LastName varchar(255), Status varchar(10) );
- I ett nytt frågefönster kör du följande kommando för att skapa användar-mygroup i den nya databasen MyMITestDB2 och bevilja - SELECTbehörigheter för databasen till mygroup:- USE MyMITestDB2 GO CREATE USER [mygroup] FROM LOGIN [mygroup] GO GRANT SELECT TO [mygroup] GO
- Logga in på den SQL-hanterade instansen med SQL Server Management Studio som medlem i Microsoft Entra-gruppen mygroup. Öppna ett nytt frågefönster och kör instruktionen korsdatabas - SELECT:- USE MyMITestDB SELECT * FROM MyMITestDB2..TestTable2 GO- Du bör se tabellresultaten från TestTable2. 
Ytterligare scenarier som stöds
- SQL Agent-hantering och jobbkörningar stöds för Microsoft Entra-inloggningar.
- Microsoft Entra-inloggningar kan köra säkerhetskopierings- och återställningsåtgärder för databaser.
- Granskning av alla instruktioner som rör Microsoft Entra-inloggningar och autentiseringshändelser.
- Dedikerad administratörsanslutning för Microsoft Entra-inloggningar som är medlemmar i sysadmin-serverrollen .
- Microsoft Entra-inloggningar stöds med sqlcmd-verktyget och SQL Server Management Studio-verktyget .
- Inloggningsutlösare stöds för inloggningshändelser som kommer från Microsoft Entra-inloggningar.
- Service Broker och DB-e-post kan konfigureras med Microsoft Entra-inloggningar.