Delen via


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 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:

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.

  1. 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
    go
    
  2. Controleer 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 there
    
  3. Gebruik 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;
    
  4. 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.

  1. Meld u als aadsqlmi\testUser1 aan bij de federatieve VM met uw Azure SQL Managed Instance-abonnement

  2. Meld 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.

    1. 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.
  3. 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.

  1. Meld u als aadsqlmi\testGroupUser aan bij de federatieve VM met uw Azure SQL Managed Instance-abonnement

  2. SSMS gebruiken met Geïntegreerde-verificatie van Active Directory, verbinding maken met de Azure SQL Managed Instance-server en de database migration

    1. 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.
  3. Als onderdeel van de rol db_owner 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 hierboven <dbo.new>

Volgende stappen

Zelfstudie: SQL Server offline migreren naar Azure SQL Managed Instance met behulp van DMS-