Zelfstudie: Windows-gebruikers en -groepen in een SQL Server-exemplaar migreren naar Azure SQL Managed Instance met behulp van de T-SQL DDL-syntaxis
Van toepassing op: Azure SQL Managed Instance
In dit artikel vindt u meer informatie over het proces voor het migreren van uw on-premises Windows-gebruikers en -groepen van uw SQL-server naar een beheerd Azure SQL-exemplaar met de T-SQL-syntaxis.
In deze zelfstudie leert u het volgende:
- Aanmeldingen voor SQL-server maken
- Een testdatabase maken voor migratie
- Aanmeldingen, gebruikers en rollen maken
- Back-up en herstel van uw database naar een beheerd SQL-exemplaar
- Gebruikers handmatig migreren naar een beheerd exemplaar met de ALTER USER-syntax
- Verificatie testen met de nieuwe toegewezen gebruikers
Notitie
Microsoft Entra-id is de nieuwe naam voor Azure Active Directory (Azure AD). Op dit moment wordt de documentatie bijgewerkt.
Vereisten
Voor het voltooien van deze zelfstudie gelden de volgende vereisten:
- 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 beheerd SQL-exemplaar. Zie quickstart: Een met SQL beheerd exemplaar maken.
- Een
sysadmin
in het beheerde SQL-exemplaar moet worden gebruikt om Microsoft Entra-aanmeldingen te maken.
- Een
- Maak een Microsoft Entra-beheerder voor SQL Managed Instance.
- U kunt in uw netwerk verbinding maken met uw beheerde SQL-exemplaar. 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
Hiermee wordt een gebruiker opnieuw toegewezen aan de Microsoft Entra-aanmelding
groupName
Geeft 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 gebruikers- en een groepsaanmelding in SQL Server U moet ervoor zorgen dat de gebruiker en groep in uw Active Directory (AD) bestaan 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 aan deze rol toe:
-- 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 de groep vervolgens toe aan de 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 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 onze quickstart: Een database herstellen naar een met SQL beheerd exemplaar.
Deel 4: Gebruikers migreren naar SQL Managed Instance
Voer de opdracht ALTER USER uit om het migratieproces op het beheerde SQL-exemplaar 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. Zie Zelfstudie: BEVEILIGING van SQL Managed Instance in Azure SQL Database met behulp van Microsoft Entra-server-principals (aanmeldingen) voor meer informatie.
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 go
Controleer of de migratie de juiste database, tabel en principals heeft.
-- 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 there
Gebruik de syntaxis ALTER USER om de on-premises gebruiker toe te wijzen 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-aanmelding.
/** 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 verificatie bij SQL Managed Instance met behulp van de gebruiker die eerder is toegewezen aan de Microsoft Entra-aanmelding met behulp van de syntaxis ALTER USER.
Meld u aan bij de federatieve VM met uw abonnement voor beheerde exemplaren van Azure SQLals
aadsqlmi\testUser1
Gebruik SQL Server Management Studio (SSMS) om u aan te melden bij uw beheerde SQL-exemplaar met geïntegreerde Active Directory-verificatie en maak verbinding met de database
migration
.- U kunt zich ook aanmelden met de testUser1@aadsqlmi.net aanmeldingsgegevens met de SSMS-optie Active Directory - Universeel met MFA-ondersteuning . In dit geval kunt u het mechanisme voor eenmalige aanmelding echter niet gebruiken en moet u een wachtwoord invoeren. U hoeft geen federatieve VM te gebruiken om u aan te melden bij uw beheerde SQL-exemplaar.
Als onderdeel van het rollid SELECTEREN, kunt u uit de tabel
test
kiezenSelect * from test -- and see one row (1,10)
Test de verificatie bij een beheerd SQL-exemplaar met behulp van een lid van een Windows-groep migration
. De gebruiker aadsqlmi\testGroupUser
moet zijn toegevoegd aan de groep migration
vóór de migratie.
Meld u aan bij de federatieve VM met uw abonnement voor beheerde exemplaren van Azure SQLals
aadsqlmi\testGroupUser
Gebruik SSMS met geïntegreerde Active Directory-verificatie om verbinding maken met de server van het beheerde Azure SQL-exemplaar en de database
migration
- U kunt zich ook aanmelden met de testGroupUser@aadsqlmi.net aanmeldingsgegevens met de SSMS-optie Active Directory - Universeel met MFA-ondersteuning . In dit geval kunt u het mechanisme voor eenmalige aanmelding echter niet gebruiken en moet u een wachtwoord invoeren. U hoeft geen federatieve VM te gebruiken om u aan te melden bij uw beheerde SQL-exemplaar.
Als onderdeel van de
db_owner
-rol kunt 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 boven <dbo.new>
Volgende stappen
Zelfstudie: SQL Server offline migreren naar Azure SQL Managed Instance met behulp van DMS