Megosztás a következőn keresztül:


Oktatóanyag: Windows-felhasználók és -csoportok áttelepítése SQL Server-példányban felügyelt Azure SQL-példányba T-SQL DDL szintaxissal

A következőkre vonatkozik:Azure SQL Felügyelt Példány

Ez a cikk végigvezeti az SQL Server helyszíni Windows-felhasználóinak és csoportjainak az Azure SQL Managed Instance-be való migrálásának folyamatán t-SQL szintaxis használatával.

Ebben az oktatóanyagban a következőket sajátíthatja el:

  • Bejelentkezések létrehozása az SQL Serverhez
  • Tesztadatbázis létrehozása migráláshoz
  • Bejelentkezések, felhasználók és szerepkörök létrehozása
  • Adatbázis biztonsági mentése és visszaállítása felügyelt SQL-példányra (MI)
  • Felhasználók manuális migrálása a MI-be ALTER USER szintaxissal
  • Hitelesítés tesztelése az új megfeleltetett felhasználókkal

Jegyzet

Microsoft Entra ID korábban Azure Active Directory (Azure AD) néven ismert.

Előfeltételek

Az oktatóanyag elvégzéséhez a következő előfeltételek érvényesek:

T-SQL DDL szintaxis

Az alábbiakban a Windows-felhasználók és -csoportok SQL Server-példányról felügyelt SQL-példányra Microsoft Entra-hitelesítéssel történő áttelepítését támogató T-SQL DDL szintaxist talál.

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

Érvek

domainName
A felhasználó tartománynevét adja meg.

userName
Az adatbázisban azonosított felhasználó nevét adja meg.

= loginName@domainName.com
Átirányít egy felhasználót a Microsoft Entra bejelentkezéshez

groupName
Az adatbázisban azonosított csoport nevét adja meg.

1. rész: Bejelentkezések létrehozása az SQL Serveren Windows-felhasználók és -csoportok számára

Fontos

Az alábbi szintaxis létrehoz egy felhasználót és egy csoportos bejelentkezést az SQL Serveren. Az alábbi szintaxis végrehajtása előtt győződjön meg arról, hogy a felhasználó és a csoport az Active Directoryban (AD) található.

Felhasználók: testUser1, testGroupUser
Csoport: migrálás – a testGroupUsernek az AD migrálási csoportjához kell tartoznia

Az alábbi példa az SQL Serverben hozza létre a bejelentkezést egy testUser1 nevű fiókhoz az aadsqlmitartományban.

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

Hozzon létre egy adatbázist ehhez a teszthez.

-- Create a database called [migration]
create database migration
go

2. rész: Windows-felhasználók és -csoportok létrehozása, majd szerepkörök és engedélyek hozzáadása

A tesztfelhasználó létrehozásához használja az alábbi szintaxist.

use migration;  
go

-- Create Windows user [aadsqlmi\testUser1] with login
create user [aadsqlmi\testUser1] from login [aadsqlmi\testUser1];
go

Ellenőrizze a felhasználói engedélyeket:

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

Hozzon létre egy szerepkört, és rendelje hozzá a tesztfelhasználót ehhez a szerepkörhöz:

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

Az alábbi lekérdezéssel megjelenítheti az adott szerepkörhöz rendelt felhasználóneveket:

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

Csoport létrehozásához használja az alábbi szintaxist. Ezután adja hozzá a csoportot a szerepkörhöz 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)

Hozzon létre egy teszttáblát, és adjon hozzá néhány adatot a következő szintaxissal:

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

3. rész: Az egyéni felhasználói adatbázis biztonsági mentése és visszaállítása felügyelt SQL-példányra

Hozzon létre biztonsági másolatot az áttelepítési adatbázisról a Adatbázisok másolása biztonsági mentéssel és visszaállítássalcímű cikkben, vagy használja az alábbi szintaxist:

use master;
go
backup database migration to disk = 'C:\Migration\migration.bak';
go

Kövesse a Gyorsútmutatót: Az adatbázis visszaállítása felügyelt SQL-példányra.

4. rész: Felhasználók áttelepítése felügyelt SQL-példányba

Hajtsa végre az ALTER USER parancsot a felügyelt SQL-példány áttelepítési folyamatának befejezéséhez.

  1. Jelentkezzen be a felügyelt SQL-példányba a Microsoft Entra rendszergazdai fiókjával. Ezután hozza létre a Microsoft Entra-bejelentkezést a felügyelt SQL-példányban az alábbi szintaxissal. További információ: oktatóanyag: SQL-kezelési példány biztonság az Azure SQL-adatbázisban a Microsoft Entra kiszolgáló-célszemélyek (bejelentkezések) használatával.

    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. Ellenőrizze a migrációt, hogy a megfelelő adatbázist, táblát és jogosultságokat használja-e.

    -- 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. Az ALTER USER szintaxis használatával társítsa a helyszíni felhasználót a Microsoft Entra-bejelentkezéshez.

    /** 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. Az ALTER USER szintaxis használatával képezd le a helyszíni csoportot a Microsoft Entra-bejelentkezésre.

    /** 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'
    

5. rész: A Microsoft Entra felhasználói vagy csoporthitelesítésének tesztelése

Tesztelje a felügyelt SQL-példányra való hitelesítést a Microsoft Entra-bejelentkezéshez korábban leképezett felhasználóval az ALTER USER szintaxis használatával.

  1. Jelentkezzen be az összevont virtuális gépre az Azure SQL Managed Instance-előfizetéssel aadsqlmi\testUser1

  2. Az SQL Server Management Studio (SSMS) használatával jelentkezzen be a felügyelt SQL-példányba Active Directory integrált-hitelesítéssel, és csatlakozzon az adatbázishoz migration.

    1. A testUser1@aadsqlmi.net hitelesítő adatokkal is bejelentkezhet az SSMS beállítással: Active Directory – Univerzális MFA-támogatással. Ebben az esetben azonban nem használhatja az egyszeri bejelentkezés mechanizmust, és be kell írnia egy jelszót. A felügyelt SQL-példányba való bejelentkezéshez nem kell összevont virtuális gépet használnia.
  3. A SELECTszerepkör tagjaként választhat a test táblából

    Select * from test  --  and see one row (1,10)
    

Tesztelje a felügyelt SQL-példányra való hitelesítést egy Windows-csoport tagjának migrationhasználatával. A aadsqlmi\testGroupUser felhasználót a migrálás előtt hozzá kellett volna adni a migration csoporthoz.

  1. Jelentkezzen be az összevont virtuális gépre az Azure SQL Managed Instance-előfizetéssel aadsqlmi\testGroupUser

  2. Csatlakozzon az Azure SQL felügyelt példány kiszolgálóhoz és az adatbázishoz migration a SSMS segítségével, Active Directory integrált-hitelesítéssel.

    1. A testGroupUser@aadsqlmi.net hitelesítő adatokkal is bejelentkezhet az Active Directory – Univerzális és MFA-támogatássalSSMS beállítással. Ebben az esetben azonban nem használhatja az egyszeri bejelentkezés mechanizmust, és be kell írnia egy jelszót. A felügyelt SQL-példányba való bejelentkezéshez nem kell összevont virtuális gépet használnia.
  3. A db_owner szerepkör részeként létrehozhat egy új táblát.

    -- Create table named 'new' with a default schema
    Create table dbo.new ( a int, b int)
    

Jegyzet

Az Azure SQL Database ismert tervezési hibája miatt a csoport tagjaként végrehajtott táblautasítás létrehozása a következő hibával meghiúsul:

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.

Az aktuális kerülő megoldás egy meglévő sémával rendelkező táblázat létrehozása a dbo.new><fenti esetben

Következő lépések

Oktatóanyag: Az SQL Server offline migrálása a DMS használatával felügyelt Azure SQL-példányba