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:
- SQL Server Management Studio (SSMS)
- Spravovaná instance
- Postupujte podle tohoto článku: Rychlý start: Vytvoření spravované instance
- Můžete získat přístup ke spravované instanci a zřídit správce Microsoft Entra pro spravovanou instanci. Další informace najdete tady:
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:
- Rychlý start: Konfigurace virtuálního počítače Azure pro připojení ke službě SQL Managed Instance
- Rychlý start: Konfigurace připojení typu point-to-site ke službě SQL Managed Instance z místního prostředí
Připojte se ke spravované instanci pomocí
sysadmin
přihlášení SQL nebo správce Microsoft Entra pomocí aplikace SQL Server Management Studio (SSMS).V Průzkumník objektů klikněte pravým tlačítkem na server a zvolte Nový dotaz.
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
Na panelu nástrojů vyberte Spustit a vytvořte přihlášení.
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
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 nebosecurityadmin
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:
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
sysadmin
SQL, který je .V Průzkumník objektů klikněte pravým tlačítkem na server a zvolte Nový dotaz.
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.comALTER 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.
Připojte se ke spravované instanci pomocí přihlášení Microsoft Entra tak , že v aplikaci SQL Server Management Studio (SSMS) vyberete Připojit k serveru .
- Do názvu serveru zadejte název hostitele služby SQL Managed Instance.
- 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í).
V Průzkumník objektů klikněte pravým tlačítkem na server a zvolte Nový dotaz.
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
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.
V Průzkumník objektů klikněte pravým tlačítkem na server a zvolte Nový dotaz.
V okně dotazu pomocí následující syntaxe vytvořte databázi s názvem MyMITestDB.
CREATE DATABASE MyMITestDB; GO
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.
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
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í.
V Průzkumník objektů klikněte pravým tlačítkem na server a zvolte Nový dotaz pro nové připojení.
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:
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ý.
Přihlaste se ke spravované instanci pomocí
sysadmin
účtu pomocí aplikace SQL Server Management Studio.V Průzkumník objektů klikněte pravým tlačítkem na server a zvolte Nový dotaz.
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
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.
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) );
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.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.
Přihlaste se ke spravované instanci pomocí
sysadmin
účtu pomocí aplikace SQL Server Management Studio.V Průzkumník objektů klikněte pravým tlačítkem na server a zvolte Nový dotaz.
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.netUSE MyMITestDB GO ALTER ROLE db_datareader ADD MEMBER [bob@aadsqlmi.net] GO ALTER ROLE db_datareader ADD MEMBER [mygroup] GO
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
Vytvořte nové připojení ke spravované instanci s uživatelem přidaným do
db_datareader
role.Rozbalením databáze v Průzkumník objektů zobrazíte tabulku.
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.
Zosobnění přihlášení Microsoft Entra
Sql Managed Instance podporuje zosobnění přihlášení Microsoft Entra.
Testování zosobnění
Přihlaste se ke spravované instanci pomocí
sysadmin
účtu pomocí aplikace SQL Server Management Studio.V Průzkumník objektů klikněte pravým tlačítkem na server a zvolte Nový dotaz.
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
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
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.
Přihlaste se ke spravované instanci pomocí
sysadmin
účtu pomocí aplikace SQL Server Management Studio.V Průzkumník objektů klikněte pravým tlačítkem na server a zvolte Nový dotaz.
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) );
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
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í:
- Auditování služby SQL Managed Instance
- Funkce Always Encrypted
- Detekce hrozeb
- Dynamické maskování dat
- Zabezpečení na úrovni řádků
- Transparentní šifrování dat (TDE)
Možnosti služby SQL Managed Instance
Úplný přehled možností služby SQL Managed Instance najdete v těchto tématech: