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.
van toepassing op:Azure SQL Managed Instance
In dit artikel wordt u begeleid bij het migreren van uw on-premises Windows-gebruikers en -groepen in uw SQL Server naar Azure SQL Managed Instance met behulp van T-SQL-syntaxis.
In deze zelfstudie leert u het volgende:
- Aanmeldingen maken voor SQL Server
- Een testdatabase maken voor migratie
- Aanmeldingen, gebruikers en rollen maken
- Een back-up van uw database maken en herstellen naar SQL Managed Instance (MI)
- Gebruikers handmatig migreren naar MI met behulp van ALTER USER-syntaxis
- Verificatie testen met de nieuwe toegewezen gebruikers
Notitie
Microsoft Entra ID voorheen Azure Active Directory (Azure AD) werd genoemd.
Voorwaarden
De volgende vereisten zijn van toepassing om deze zelfstudie te voltooien:
- Het Windows-domein is gefedereerd met Microsoft Entra-id.
- Toegang tot Active Directory om gebruikers/groepen te maken.
- Een bestaande SQL Server in uw on-premises omgeving.
- Een bestaand met SQL beheerd exemplaar. Zie Quickstart: Een SQL Managed Instancemaken.
- Een
sysadminin de SQL Managed Instance moet worden gebruikt om Microsoft Entra-logins te maken.
- Een
- Een Microsoft Entra-beheerder maken voor SQL Managed Instance.
- U kunt verbinding maken met uw met SQL beheerde exemplaar in uw netwerk. Zie de volgende artikelen voor meer informatie:
T-SQL DDL-syntaxis
Hieronder ziet u de T-SQL DDL-syntaxis die wordt gebruikt ter ondersteuning van de migratie van Windows-gebruikers en -groepen van een SQL Server-exemplaar naar SQL Managed Instance met Microsoft Entra-verificatie.
-- For individual Windows users with logins
ALTER USER [domainName\userName] WITH LOGIN = [loginName@domainName.com];
--For individual groups with logins
ALTER USER [domainName\groupName] WITH LOGIN=[groupName]
Argumenten
domainName
Hiermee geeft u de domeinnaam van de gebruiker.
userName
Hiermee geeft u de naam op van de gebruiker die in de database is geïdentificeerd.
= loginName@domainName.com
Herrouteert een gebruiker naar de Microsoft Entra-inlogpagina
groupName
Hiermee geeft u de naam op van de groep die in de database is geïdentificeerd.
Deel 1: Aanmeldingen maken in SQL Server voor Windows-gebruikers en -groepen
Belangrijk
Met de volgende syntaxis maakt u een gebruiker en een groepsaanmelding in uw SQL Server. U moet ervoor zorgen dat de gebruiker en groep aanwezig zijn in uw Active Directory (AD) voordat u de onderstaande syntaxis uitvoert.
Gebruikers: testUser1, testGroupUser
Groep: migratie - testGroupUser moet behoren tot de migratiegroep in AD
In het onderstaande voorbeeld wordt een aanmelding in SQL Server gemaakt voor een account met de naam testUser1 onder het domein aadsqlmi-.
-- Sign into SQL Server as a sysadmin or a user that can create logins and databases
use master;
go
-- Create Windows login
create login [aadsqlmi\testUser1] from windows;
go;
/** Create a Windows group login which contains one user [aadsqlmi\testGroupUser].
testGroupUser will need to be added to the migration group in Active Directory
**/
create login [aadsqlmi\migration] from windows;
go;
-- Check logins were created
select * from sys.server_principals;
go;
Maak een database voor deze test.
-- Create a database called [migration]
create database migration
go
Deel 2: Windows-gebruikers en -groepen maken en vervolgens rollen en machtigingen toevoegen
Gebruik de volgende syntaxis om de testgebruiker te maken.
use migration;
go
-- Create Windows user [aadsqlmi\testUser1] with login
create user [aadsqlmi\testUser1] from login [aadsqlmi\testUser1];
go
Controleer de gebruikersmachtigingen:
-- Check the user in the Metadata
select * from sys.database_principals;
go
-- Display the permissions – should only have CONNECT permissions
select user_name(grantee_principal_id), * from sys.database_permissions;
go
Maak een rol en wijs uw testgebruiker toe aan deze rol:
-- Create a role with some permissions and assign the user to the role
create role UserMigrationRole;
go
grant CONNECT, SELECT, View DATABASE STATE, VIEW DEFINITION to UserMigrationRole;
go
alter role UserMigrationRole add member [aadsqlmi\testUser1];
go
Gebruik de volgende query om gebruikersnamen weer te geven die zijn toegewezen aan een specifieke rol:
-- Display user name assigned to a specific role
SELECT DP1.name AS DatabaseRoleName,
isnull (DP2.name, 'No members') AS DatabaseUserName
FROM sys.database_role_members AS DRM
RIGHT OUTER JOIN sys.database_principals AS DP1
ON DRM.role_principal_id = DP1.principal_id
LEFT OUTER JOIN sys.database_principals AS DP2
ON DRM.member_principal_id = DP2.principal_id
WHERE DP1.type = 'R'
ORDER BY DP1.name;
Gebruik de volgende syntaxis om een groep te maken. Voeg daarna de groep toe aan rol db_owner.
-- Create Windows group
create user [aadsqlmi\migration] from login [aadsqlmi\migration];
go
-- ADD 'db_owner' role to this group
sp_addrolemember 'db_owner', 'aadsqlmi\migration';
go
--Check the db_owner role for 'aadsqlmi\migration' group
select is_rolemember('db_owner', 'aadsqlmi\migration')
go
-- Output ( 1 means YES)
Maak een testtabel en voeg enkele gegevens toe met behulp van de volgende syntaxis:
-- Create a table and add data
create table test ( a int, b int);
go
insert into test values (1,10)
go
-- Check the table values
select * from test;
go
Deel 3: Een back-up maken van de individuele gebruikersdatabase en deze herstellen naar SQL Managed Instance
Maak een back-up van de migratiedatabase met behulp van het artikel Databases kopiëren met back-up en herstel, of gebruik de volgende syntaxis:
use master;
go
backup database migration to disk = 'C:\Migration\migration.bak';
go
Volg de Quickstart : Een database herstellen op een SQL Managed Instance.
Deel 4: Gebruikers migreren naar SQL Managed Instance
Voer de opdracht ALTER USER uit om het migratieproces in SQL Managed Instance te voltooien.
Meld u aan bij uw sql Managed Instance met behulp van het Microsoft Entra-beheerdersaccount voor SQL Managed Instance. Maak vervolgens uw Microsoft Entra-aanmelding in het met SQL beheerde exemplaar met behulp van de volgende syntaxis. Voor meer informatie, zie Zelfstudie: beveiliging van SQL Managed Instance in Azure SQL Database met behulp van Microsoft Entra-server-principals (aanmeldingen).
use master go -- Create login for AAD user [testUser1@aadsqlmi.net] create login [testUser1@aadsqlmi.net] from external provider go -- Create login for the Azure AD group [migration]. This group contains one user [testGroupUser@aadsqlmi.net] create login [migration] from external provider go --Check the two new logins select * from sys.server_principals goControleer uw migratie op de juiste database, tabel en principals.
-- Switch to the database migration that is already restored for MI use migration; go --Check if the restored table test exist and contain a row select * from test; go -- Check that the SQL on-premises Windows user/group exists select * from sys.database_principals; go -- the old user aadsqlmi\testUser1 should be there -- the old group aadsqlmi\migration should be thereGebruik de syntaxis ALTER USER om de on-premises gebruiker te koppelen aan de Microsoft Entra-aanmelding.
/** Execute the ALTER USER command to alter the Windows user [aadsqlmi\testUser1] to map to the Azure AD user testUser1@aadsqlmi.net **/ alter user [aadsqlmi\testUser1] with login = [testUser1@aadsqlmi.net]; go -- Check the principal select * from sys.database_principals; go -- New user testUser1@aadsqlmi.net should be there instead --Check new user permissions - should only have CONNECT permissions select user_name(grantee_principal_id), * from sys.database_permissions; go -- Check a specific role -- Display Db user name assigned to a specific role SELECT DP1.name AS DatabaseRoleName, isnull (DP2.name, 'No members') AS DatabaseUserName FROM sys.database_role_members AS DRM RIGHT OUTER JOIN sys.database_principals AS DP1 ON DRM.role_principal_id = DP1.principal_id LEFT OUTER JOIN sys.database_principals AS DP2 ON DRM.member_principal_id = DP2.principal_id WHERE DP1.type = 'R' ORDER BY DP1.name;Gebruik de syntaxis ALTER USER om de on-premises groep toe te wijzen aan de Microsoft Entra-login.
/** Execute ALTER USER command to alter the Windows group [aadsqlmi\migration] to the Azure AD group login [migration] **/ alter user [aadsqlmi\migration] with login = [migration]; -- old group migration is changed to Azure AD migration group go -- Check the principal select * from sys.database_principals; go --Check the group permission - should only have CONNECT permissions select user_name(grantee_principal_id), * from sys.database_permissions; go --Check the db_owner role for 'aadsqlmi\migration' user select is_rolemember('db_owner', 'migration') go -- Output 1 means 'YES'
Deel 5: Microsoft Entra-gebruikers- of groepsverificatie testen
Test authenticatie naar de SQL Managed Instance door de gebruiker die eerder is gekoppeld aan de Microsoft Entra-aanmelding te gebruiken via de syntax ALTER USER.
Meld u als
aadsqlmi\testUser1aan bij de federatieve VM met uw Azure SQL Managed Instance-abonnementMeld u met SQL Server Management Studio (SSMS) aan bij uw SQL Managed Instance met behulp van Active Directory geïntegreerde-verificatie, waarmee u verbinding maakt met de database
migration.- U kunt zich ook aanmelden met de testUser1@aadsqlmi.net-referenties met de SSMS-optie Active Directory – Universeel met MFA-ondersteuning. In dit geval kunt u echter niet het mechanisme voor eenmalige aanmelding gebruiken en moet u een wachtwoord typen. U hoeft geen federatieve VM te gebruiken om u aan te melden bij uw met SQL beheerde exemplaar.
Als onderdeel van het rollid SELECTkunt u selecteren uit de tabel
test.Select * from test -- and see one row (1,10)
Test de authenticatie voor een SQL Managed Instance door een lid van een Windows-groep migration. De aadsqlmi\testGroupUser van de gebruiker moet vóór de migratie zijn toegevoegd aan de groep migration.
Meld u als
aadsqlmi\testGroupUseraan bij de federatieve VM met uw Azure SQL Managed Instance-abonnementSSMS gebruiken met Geïntegreerde-verificatie van Active Directory, verbinding maken met de Azure SQL Managed Instance-server en de database
migration- U kunt zich ook aanmelden met de testGroupUser@aadsqlmi.net-referenties met de SSMS-optie Active Directory – Universeel met MFA-ondersteuning. In dit geval kunt u echter niet het mechanisme voor eenmalige aanmelding gebruiken en moet u een wachtwoord typen. U hoeft geen federatieve VM te gebruiken om u aan te melden bij uw met SQL beheerde exemplaar.
Als onderdeel van de rol
db_ownerkunt u een nieuwe tabel maken.-- Create table named 'new' with a default schema Create table dbo.new ( a int, b int)
Notitie
Vanwege een bekend ontwerpprobleem voor Azure SQL Database mislukt een tabelinstructie die als lid van een groep wordt uitgevoerd, met de volgende fout: Msg 2760, Level 16, State 1, Line 4 The specified schema name "testGroupUser@aadsqlmi.net" either does not exist or you do not have permission to use it.
De huidige tijdelijke oplossing is het maken van een tabel met een bestaand schema in het geval hierboven <dbo.new>
Volgende stappen
Zelfstudie: SQL Server offline migreren naar Azure SQL Managed Instance met behulp van DMS-