Sdílet prostřednictvím


Kurz: Zabezpečení pomocí přihlášení Microsoft Entra – Azure SQL Managed Instance

Platí pro:Azure SQL Managed Instance

V tomto článku se naučíte používat instanční objekty (přihlášení) zálohované microsoftem Entra ID (dříve Azure Active Directory) k zabezpečení spravované instance Azure SQL.

V tomto kurzu se naučíte:

  • Vytvoření přihlášení Microsoft Entra pro spravovanou instanci
  • Udělení oprávnění pro přihlášení ve spravované instanci
  • Vytvoření uživatelů Microsoft Entra z přihlášení
  • Přiřazení oprávnění uživatelům a správa zabezpečení databáze
  • Použití zosobnění s uživateli
  • Použití dotazů mezi databázemi s uživateli
  • Seznamte se s funkcemi zabezpečení, jako je ochrana před hrozbami, auditování, maskování dat a šifrování.

Poznámka:

ID Microsoft Entra se dříve označovalo jako Azure Active Directory (Azure AD).

Požadavky

K dokončení kurzu se ujistěte, že máte následující požadavky:

Omezení přístupu

Ke spravovaným instancím je možné přistupovat prostřednictvím privátní IP adresy. Podobně jako izolované prostředí SQL Serveru potřebují aplikace nebo uživatelé přístup k síti služby SQL Managed Instance (VNet) před vytvořením připojení. Další informace najdete v tématu Připojení aplikace ke službě SQL Managed Instance.

Ve spravované instanci je také možné nakonfigurovat koncový bod služby, který umožňuje veřejná připojení stejným způsobem jako pro Azure SQL Database. Další informace najdete v tématu Konfigurace veřejného koncového bodu v Azure SQL Managed Instance.

Vytvoření přihlášení Microsoft Entra pomocí SSMS

První přihlášení Microsoft Entra může vytvořit správce SQL nebo správce Microsoft Entra vytvořený během zřizování. Další informace naleznete v tématu Zřízení správce Microsoft Entra pro SLUŽBU SQL Managed Instance.

Příklady připojení ke službě SQL Managed Instance najdete v následujících článcích:

  1. Připojení ke spravované instanci pomocí sysadmin Přihlášení SQL nebo správce Microsoft Entra pomocí aplikace SQL Server Management Studio (SSMS)

  2. V Průzkumník objektů klikněte pravým tlačítkem na server a zvolte Nový dotaz.

  3. V okně dotazu použijte následující syntaxi k vytvoření přihlášení k místnímu účtu Microsoft Entra:

    USE master
    GO
    CREATE LOGIN login_name FROM EXTERNAL PROVIDER
    GO
    

    Tento příklad vytvoří přihlášení pro účet nativeuser@aadsqlmi.onmicrosoft.com.

    USE master
    GO
    CREATE LOGIN [nativeuser@aadsqlmi.onmicrosoft.com] FROM EXTERNAL PROVIDER
    GO
    
  4. Na panelu nástrojů vyberte Spustit a vytvořte přihlášení.

  5. Spuštěním následujícího příkazu T-SQL zkontrolujte nově přidané přihlášení:

    SELECT *  
    FROM sys.server_principals;  
    GO
    

    Screenshot of the Results tab in the S S M S Object Explorer showing the name, principal_id, sid, type, and type_desc of the newly added login.

Další informace najdete v tématu CREATE LOGIN.

Udělení oprávnění k vytváření přihlášení

Existující přihlášení musí mít odpovídající oprávnění nebo být součástí příslušných rolí serveru, aby bylo možné vytvořit další přihlášení Microsoft Entra.

Přihlášení ověřování SQL

  • Pokud se jedná o objekt zabezpečení serveru založený na ověřování SQL, musí být přiřazena sysadmin role k vytvoření přihlášení pro účty Microsoft Entra.

Přihlášení k ověřování Microsoft Entra

  • Pokud je přihlášení instančním objektem serveru Microsoft Entra, musí být přiřazena sysadmin role serveru nebo securityadmin role serveru, aby bylo možné vytvářet přihlášení pro ostatní uživatele, skupiny a aplikace Microsoft Entra.
  • Aby bylo možné vytvořit další přihlášení Microsoft Entra, musí být uděleno minimálně oprávnění ALTER ANY LOGIN .
  • Ve výchozím nastavení jsou standardní oprávnění udělená nově vytvořeným přihlášením master Microsoft Entra: CONNECT SQL a VIEW ANY DATABASE.
  • Role sysadmin serveru může být udělena mnoha přihlášením Microsoft Entra v rámci spravované instance.

Přidání přihlášení k sysadmin roli serveru:

  1. Znovu se přihlaste ke spravované instanci nebo použijte existující připojení s objektem zabezpečení Microsoft Entra nebo instančním objektem sysadminSQL, který je .

  2. V Průzkumník objektů klikněte pravým tlačítkem na server a zvolte Nový dotaz.

  3. Pomocí následující syntaxe T-SQL udělte službě Microsoft Entra přihlašovací sysadmin roli serveru:

    ALTER SERVER ROLE sysadmin ADD MEMBER login_name
    GO
    

    Následující příklad udělí sysadmin roli serveru pro přihlášení. nativeuser@aadsqlmi.onmicrosoft.com

    ALTER SERVER ROLE sysadmin ADD MEMBER [nativeuser@aadsqlmi.onmicrosoft.com]
    GO
    

Vytvoření dalších přihlášení Microsoft Entra pomocí aplikace SSMS

Po vytvoření a udělení sysadmin oprávnění microsoft Entra může toto přihlášení vytvořit další přihlášení pomocí klauzule FROM EXTERNAL PROVIDER s CREATE LOGIN.

  1. Připojení ke spravované instanci pomocí přihlášení Microsoft Entra tak, že vyberete Připojení na Server v aplikaci SQL Server Management Studio (SSMS).

    1. Do názvu serveru zadejte název hostitele služby SQL Managed Instance.
    2. V části Ověřování vyberte Active Directory – Univerzální s podporou vícefaktorového ověřování a zobrazte tak přihlašovací okno vícefaktorového ověřování. Přihlášení. Další informace najdete v tématu Univerzální ověřování (podpora SSMS pro vícefaktorové ověřování).
  2. V Průzkumník objektů klikněte pravým tlačítkem na server a zvolte Nový dotaz.

  3. V okně dotazu použijte následující syntaxi k vytvoření přihlášení pro jiný účet Microsoft Entra:

    USE master
    GO
    CREATE LOGIN login_name FROM EXTERNAL PROVIDER
    GO
    

    Tento příklad vytvoří přihlášení pro uživatele bob@aadsqlmi.netMicrosoft Entra, jehož doména aadsqlmi.net je federována s doménou Microsoft Entra aadsqlmi.onmicrosoft.com.

    Spusťte následující příkaz T-SQL. Federované účty Microsoft Entra představují náhradu za místní přihlášení a uživatele služby SQL Managed Instance.

    USE master
    GO
    CREATE LOGIN [bob@aadsqlmi.net] FROM EXTERNAL PROVIDER
    GO
    
  4. Vytvořte databázi ve spravované instanci pomocí syntaxe CREATE DATABASE . Tato databáze se použije k otestování přihlášení uživatelů v další části.

    1. V Průzkumník objektů klikněte pravým tlačítkem na server a zvolte Nový dotaz.

    2. V okně dotazu pomocí následující syntaxe vytvořte databázi s názvem MyMITestDB.

      CREATE DATABASE MyMITestDB;
      GO
      
  5. Vytvořte přihlášení ke službě SQL Managed Instance pro skupinu v MICROSOFT Entra ID. Skupina musí existovat v MICROSOFT Entra ID před přidáním přihlášení ke službě SQL Managed Instance. Viz Vytvoření základní skupiny a přidání členů pomocí Microsoft Entra ID. Vytvořte skupinu mygroup a přidejte do této skupiny členy.

  6. Otevřete nové okno dotazu v aplikaci SQL Server Management Studio.

    Tento příklad předpokládá, že existuje skupina s názvem mygroup v MICROSOFT Entra ID. Spusťte následující příkaz:

    USE master
    GO
    CREATE LOGIN [mygroup] FROM EXTERNAL PROVIDER
    GO
    
  7. Jako test se přihlaste ke spravované instanci pomocí nově vytvořeného přihlášení nebo skupiny. Otevřete nové připojení ke spravované instanci a při ověřování použijte nové přihlášení.

  8. V Průzkumník objektů klikněte pravým tlačítkem na server a zvolte Nový dotaz pro nové připojení.

  9. Spuštěním následujícího příkazu zkontrolujte oprávnění serveru pro nově vytvořené přihlášení Microsoft Entra:

    SELECT * FROM sys.fn_my_permissions (NULL, 'DATABASE')
    GO
    

Podpora objektů zabezpečení Microsoft Entra v Azure SQL jako uživatelé a přihlášení se rozšiřují o Microsoft Entra Externí ID interních a externích uživatelů typu host. Uživatele typu host, a to jednotlivě i jako součást skupiny, je možné použít stejně jako jakýkoli jiný uživatel Microsoft Entra v Azure SQL. Pokud chcete, aby uživatelé typu host mohli vytvářet další přihlášení serveru Microsoft Entra nebo uživatele databáze, musí mít oprávnění ke čtení jiných identit v adresáři Microsoft Entra. Toto oprávnění se konfiguruje na úrovni adresáře. Další informace naleznete v tématu Přístupová oprávnění hosta v Microsoft Entra ID.

Vytvoření uživatele Microsoft Entra z přihlášení Microsoft Entra

Autorizace pro jednotlivé databáze funguje ve službě SQL Managed Instance podobně jako u databází na SQL Serveru. Uživatele můžete vytvořit z existujícího přihlášení v databázi, která má udělená oprávnění k této databázi, nebo můžete přidat do databázové role.

Teď, když jsme vytvořili databázi s názvem MyMITestDB a přihlašovací jméno, které má pouze výchozí oprávnění, je dalším krokem vytvoření uživatele z přihlášení. V tuto chvíli se přihlášení může připojit ke spravované instanci a zobrazit všechny databáze, ale nemůže s databázemi pracovat. Pokud se přihlásíte pomocí účtu Microsoft Entra, který má výchozí oprávnění, a pokusíte se rozbalit nově vytvořenou databázi, zobrazí se následující chyba:

Screenshot of an error message from the the S S M S Object Explorer that reads

Další informace o udělení oprávnění k databázi naleznete v tématu Začínáme s oprávněními databázového stroje.

Vytvoření uživatele Microsoft Entra a vytvoření ukázkové tabulky

Poznámka:

Existují určitá omezení, když se uživatel přihlásí jako součást skupiny Microsoft Entra. Například volání, které SUSER_SID se vrátí NULL, protože daný uživatel Microsoft Entra není součástí sys.server_principals tabulky. Proto může být přístup k určitým uloženým procedurům nebo seznamu udělených oprávnění v tomto případě omezený.

  1. Přihlaste se ke spravované instanci pomocí sysadmin účtu pomocí aplikace SQL Server Management Studio.

  2. V Průzkumník objektů klikněte pravým tlačítkem na server a zvolte Nový dotaz.

  3. V okně dotazu pomocí následující syntaxe vytvořte uživatele z přihlášení Microsoft Entra:

    USE <Database Name> -- provide your database name
    GO
    CREATE USER user_name FROM LOGIN login_name
    GO
    

    Následující příklad vytvoří uživatele bob@aadsqlmi.net z přihlášení bob@aadsqlmi.net:

    USE MyMITestDB
    GO
    CREATE USER [bob@aadsqlmi.net] FROM LOGIN [bob@aadsqlmi.net]
    GO
    
  4. Podporuje se také vytvoření uživatele Microsoft Entra z přihlášení Microsoft Entra, které je skupinou.

    Následující příklad vytvoří přihlášení pro skupinu Microsoft Entra mygroup , která existuje ve vašem tenantovi Microsoft Entra.

    USE MyMITestDB
    GO
    CREATE USER [mygroup] FROM LOGIN [mygroup]
    GO
    

    Všichni uživatelé, kteří patří do skupiny MyMITestDB , mají přístup k databázi MyMITestDB .

    Důležité

    Při vytváření uživatele z přihlášení Microsoft Entra zadejte user_name jako stejný login_name z LOGIN.

    Další informace naleznete v tématu CREATE USER.

  5. V novém okně dotazu vytvořte testovací tabulku pomocí následujícího příkazu T-SQL:

    USE MyMITestDB
    GO
    CREATE TABLE TestTable
    (
    AccountNum varchar(10),
    City varchar(255),
    Name varchar(255),
    State varchar(2)
    );
    
  6. Vytvořte připojení v aplikaci SSMS s uživatelem, který byl vytvořen. Všimněte si, že tabulku TestTable, kterou vytvořil sysadmin předchozí tabulka, nevidíte. Potřebujeme uživateli poskytnout oprávnění ke čtení dat z databáze.

  7. Aktuální oprávnění, které má uživatel, můžete zkontrolovat spuštěním následujícího příkazu:

    SELECT * FROM sys.fn_my_permissions('MyMITestDB','DATABASE')
    GO
    

Přidání uživatelů do rolí na úrovni databáze

Aby uživatel viděl data v databázi, můžeme uživateli poskytnout role na úrovni databáze.

  1. Přihlaste se ke spravované instanci pomocí sysadmin účtu pomocí aplikace SQL Server Management Studio.

  2. V Průzkumník objektů klikněte pravým tlačítkem na server a zvolte Nový dotaz.

  3. Udělte uživateli db_datareader Microsoft Entra roli databáze pomocí následující syntaxe T-SQL:

    Use <Database Name> -- provide your database name
    ALTER ROLE db_datareader ADD MEMBER user_name
    GO
    

    Následující příklad poskytuje uživateli a skupině mygroup db_datareader oprávnění k databázi MyMITestDB:bob@aadsqlmi.net

    USE MyMITestDB
    GO
    ALTER ROLE db_datareader ADD MEMBER [bob@aadsqlmi.net]
    GO
    ALTER ROLE db_datareader ADD MEMBER [mygroup]
    GO
    
  4. Spuštěním následujícího příkazu zkontrolujte uživatele Microsoft Entra, který byl vytvořen v databázi:

    SELECT * FROM sys.database_principals
    GO
    
  5. Vytvořte nové připojení ke spravované instanci s uživatelem přidaným do db_datareader role.

  6. Rozbalením databáze v Průzkumník objektů zobrazíte tabulku.

    Screenshot from Object Explorer in S S M S showing the folder structure for Tables in MyMITestDB. The dbo.TestTable folder is highlighted.

  7. Otevřete nové okno dotazu a spusťte následující příkaz SELECT:

    SELECT *
    FROM TestTable
    

    Vidíte data z tabulky? Měly by se zobrazit vrácené sloupce.

    Screenshot of the Results tab in the S S M S Object Explorer showing the table column headers AccountNum, City, Name, and State.

Zosobnění přihlášení Microsoft Entra

Sql Managed Instance podporuje zosobnění přihlášení Microsoft Entra.

Testování zosobnění

  1. Přihlaste se ke spravované instanci pomocí sysadmin účtu pomocí aplikace SQL Server Management Studio.

  2. V Průzkumník objektů klikněte pravým tlačítkem na server a zvolte Nový dotaz.

  3. V okně dotazu vytvořte novou uloženou proceduru pomocí následujícího příkazu:

    USE MyMITestDB
    GO  
    CREATE PROCEDURE dbo.usp_Demo  
    WITH EXECUTE AS 'bob@aadsqlmi.net'  
    AS  
    SELECT user_name();  
    GO
    
  4. Pomocí následujícího příkazu zjistíte, že uživatel, kterého zosobníte při provádění uložené procedury, je bob@aadsqlmi.net.

    Exec dbo.usp_Demo
    
  5. Otestujte zosobnění pomocí příkazu EXECUTE AS LOGIN:

    EXECUTE AS LOGIN = 'bob@aadsqlmi.net'
    GO
    SELECT SUSER_SNAME()
    REVERT
    GO
    

Poznámka:

Pouze přihlášení na úrovni serveru SQL, která jsou součástí sysadmin role, můžou spouštět následující operace, které cílí na objekty zabezpečení Microsoft Entra:

  • SPUSTIT JAKO UŽIVATEL
  • SPUSTIT JAKO PŘIHLÁŠENÍ

Použití dotazů napříč databázemi

Dotazy mezi databázemi jsou podporovány pro účty Microsoft Entra s přihlášeními Microsoft Entra. Abychom mohli otestovat křížový dotaz se skupinou Microsoft Entra, musíme vytvořit jinou databázi a tabulku. Pokud už existuje, můžete přeskočit vytvoření jiné databáze a tabulky.

  1. Přihlaste se ke spravované instanci pomocí sysadmin účtu pomocí aplikace SQL Server Management Studio.

  2. V Průzkumník objektů klikněte pravým tlačítkem na server a zvolte Nový dotaz.

  3. V okně dotazu pomocí následujícího příkazu vytvořte databázi s názvem MyMITestDB2 a tabulku s názvem TestTable2:

    CREATE DATABASE MyMITestDB2;
    GO
    USE MyMITestDB2
    GO
    CREATE TABLE TestTable2
    (
    EmpId varchar(10),
    FirstName varchar(255),
    LastName varchar(255),
    Status varchar(10)
    );
    
  4. V novém okně dotazu spusťte následující příkaz, kterým vytvoříte skupinu mygroup uživatele v nové databázi MyMITestDB2 a udělíte této databázi oprávnění SELECT pro tuto databázi mygroup:

    USE MyMITestDB2
    GO
    CREATE USER [mygroup] FROM LOGIN [mygroup]
    GO
    GRANT SELECT TO [mygroup]
    GO
    
  5. Přihlaste se ke spravované instanci pomocí aplikace SQL Server Management Studio jako člen skupiny Microsoft Entra mygroup. Otevřete nové okno dotazu a spusťte příkaz SELECT mezi databázemi:

    USE MyMITestDB
    SELECT * FROM MyMITestDB2..TestTable2
    GO
    

    Měli byste vidět výsledky tabulky z tabulky TestTable2.

Další podporované scénáře

  • Správa agenta SQL a spouštění úloh jsou podporovány pro přihlášení Microsoft Entra.
  • Operace zálohování a obnovení databáze můžou provádět přihlášení Microsoft Entra.
  • Auditování všech příkazů souvisejících s přihlášeními a událostmi ověřování Microsoft Entra
  • Vyhrazené připojení správce pro přihlášení Microsoft Entra, která jsou členy sysadmin role serveru.
  • Přihlášení Microsoft Entra jsou podporována pomocí nástroje sqlcmd a nástroje SQL Server Management Studio .
  • Triggery přihlášení jsou podporovány pro události přihlášení pocházející z přihlášení Microsoft Entra.
  • Službu Service Broker a DB poštu je možné nastavit pomocí přihlášení Microsoft Entra.

Další kroky

Povolení funkcí zabezpečení

Úplný seznam způsobů zabezpečení databáze najdete v článku o funkcích zabezpečení služby SQL Managed Instance. Probereme následující funkce zabezpečení:

Možnosti služby SQL Managed Instance

Úplný přehled možností služby SQL Managed Instance najdete v těchto tématech: