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řte přihlášení Microsoft Entra pro spravovanou instanci SQL.
  • Udělte oprávnění pro přihlášení ve spravované instanci SQL.
  • Vytvořte uživatele Microsoft Entra z přihlášení.
  • Přiřaďte uživatelům oprávnění a spravujte zabezpečení databáze.
  • Používejte zosobnění s uživateli.
  • Používejte u uživatelů dotazy napříč databázemi.
  • 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 SQL 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.

Je také možné nakonfigurovat koncový bod služby ve spravované instanci SQL, 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

Správce SQL může vytvořit první přihlášení Microsoft Entra 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řipojte se ke spravované instanci SQL pomocí přihlášení správce systému 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
    

    Snímek obrazovky s kartou Výsledky v Průzkumníku objektů SSMS zobrazující název, principal_id, sid, typ a type_desc nově přidaného přihlášení

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 role správce systému , aby bylo možné vytvořit 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 role serveru sysadmin nebo securityadmin , aby bylo možné vytvářet přihlášení pro ostatní uživatele, skupiny a aplikace Microsoft Entra.
  • Minimálně ALTER ANY LOGIN musí být uděleno oprávnění k vytvoření dalších přihlášení Microsoft Entra.
  • Ve výchozím nastavení jsou standardní oprávnění udělená nově vytvořeným přihlášením Microsoft Entra a masterCONNECT SQLVIEW ANY DATABASE.
  • Roli serveru sysadmin lze udělit mnoha přihlášením Microsoft Entra v rámci spravované instance SQL.

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

  1. Znovu se přihlaste ke spravované instanci SQL nebo použijte stávající připojení s správcem Microsoft Entra nebo instančním objektem SQL, který je správcem systému.

  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í roli serveru sysadmin :

    ALTER SERVER ROLE sysadmin ADD MEMBER login_name
    GO
    

    Následující příklad udělí roli serveru sysadmin 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í přihlášení Microsoft Entra a udělení oprávnění správce systému může toto přihlášení vytvořit další přihlášení pomocí FROM EXTERNAL PROVIDER klauzule s CREATE LOGIN.

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

    1. Do názvu serveru zadejte název hostitele služby SQL Managed Instance.
    2. V části Ověřování vyberte Microsoft Entra MFA , aby se otevře 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 SQL 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 SQL pomocí nově vytvořeného přihlášení nebo skupiny. Otevřete nové připojení ke spravované instanci SQL 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 je přidána 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 daného přihlášení. V tuto chvíli se přihlášení může připojit ke spravované instanci SQL a zobrazit všechny databáze, ale nemůže s databázemi pracovat. Pokud se přihlásíte pomocí účtu Microsoft Entra s výchozími oprávněními a pokusíte se rozbalit nově vytvořenou databázi, zobrazí se následující chyba:

Snímek obrazovky s chybovou zprávou z Průzkumníka objektů SSMS se zprávou

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é se SUSER_SID má vrátit NULL, protože daný uživatel Microsoft Entra není součástí tabulky sys.server_principals . 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 SQL pomocí účtu správce systému v aplikaci 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 správce systému dříve, 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 SQL pomocí účtu správce systému 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 Microsoft Entra roli databáze db_datareader 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 bob@aadsqlmi.net a skupině mygroup oprávnění db_datareader v databázi MyMITestDB :

    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, zda existuje uživatel Microsoft Entra, který byl vytvořen v databázi:

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

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

    Snímek obrazovky z Průzkumníka objektů v SSMS zobrazující strukturu složek pro tabulky v MyMITestDB Dbo. Složka TestTable je zvýrazněná.

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

    SELECT *
    FROM TestTable
    

    Vidíte data z tabulky? Měly by se zobrazit vrácené sloupce, jak je znázorněno na následujícím snímku obrazovky:

    Snímek obrazovky s kartou Výsledky v Průzkumníku objektů SSMS zobrazující záhlaví sloupců tabulky AccountNum, City, Name a 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 SQL pomocí účtu správce systému 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í role správce systému , můžou spouštět následující operace, které cílí na objekty zabezpečení Microsoft Entra:

  • EXECUTE AS USER
  • EXECUTE AS LOGIN

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 SQL pomocí účtu správce systému 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 v nové databázi MyMITestDB2 a udělíte SELECT oprávnění k této 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 SQL pomocí aplikace SQL Server Management Studio jako člen skupiny Microsoft Entra mygroup. Otevřete nové okno dotazu a spusťte příkaz křížové databáze SELECT :

    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.
  • Přihlášení Microsoft Entra můžou spouštět operace zálohování a obnovení databáze.
  • 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 role serveru sysadmin .
  • 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.