Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à :Azure SQL Managed Instance
Dans cet article, découvrez comment utiliser des principaux (connexions) de serveur sauvegardés par Microsoft Entra ID (anciennement Azure Active Directory) pour sécuriser une Azure SQL Managed Instance.
Dans ce tutoriel, vous allez apprendre à :
- Créez une connexion Microsoft Entra pour une instance managée SQL.
- Accordez des autorisations aux connexions dans une instance managée SQL.
- Créez des utilisateurs Microsoft Entra à partir de connexions.
- Attribuez des autorisations aux utilisateurs et gérez la sécurité de la base de données.
- Utilisez l’emprunt d’identité avec les utilisateurs.
- Utilisez des requêtes inter-bases de données avec des utilisateurs.
- Découvrez les fonctionnalités de sécurité, telles que la protection contre les menaces, l’audit, le masquage des données et le chiffrement.
Remarque
Microsoft Entra ID était anciennement appelé Azure Active Directory (Azure AD).
Prérequis
Pour suivre le tutoriel, vérifiez que les prérequis ci-dessous sont remplis :
- SSMS (SQL Server Management Studio)
- Instance managée SQL
- Suivez cet article : Démarrage rapide : Créer une instance managée SQL
- En mesure d’accéder à votre instance managée SQL et d’approvisionner un administrateur Microsoft Entra pour l’instance managée SQL. Pour plus d'informations, consultez les rubriques suivantes :
Limiter l’accès
Les instances managées SQL sont accessibles via une adresse IP privée. Tout comme dans un environnement SQL Server isolé, les applications ou les utilisateurs doivent avoir accès au réseau (virtuel) SQL Managed Instance pour pouvoir établir une connexion. Pour plus d’informations, consultez Connecter votre application à SQL Managed Instance.
Il est également possible de configurer un point de terminaison de service sur une instance managée SQL, ce qui permet des connexions publiques de la même manière que pour Azure SQL Database. Pour plus d’informations, consultez Configurer un point de terminaison public dans Azure SQL Managed Instance.
Créer une connexion Microsoft Entra à l’aide de SSMS
L’administrateur SQL peut créer la première connexion Microsoft Entra ou l’administrateur Microsoft Entra créé lors de l’approvisionnement. Pour plus d’informations, consultez Approvisionner un administrateur Microsoft Entra pour SQL Managed Instance.
Consultez les articles suivants pour obtenir des exemples de connexion à SQL Managed Instance :
- Démarrage rapide : Configurer une machine virtuelle Azure pour se connecter à SQL Managed Instance
- Démarrage rapide : Configurer une connexion point à site à SQL Managed Instance en local
Connectez-vous à votre instance managée SQL avec une connexion SYSadmin SQL ou l’administrateur Microsoft Entra à l’aide de SQL Server Management Studio (SSMS).
Dans l’Explorateur d’objets, cliquez avec le bouton droit sur le serveur, puis choisissez Nouvelle requête.
Dans la fenêtre Requête, utilisez la syntaxe suivante afin de créer une connexion pour un compte Microsoft Entra local :
USE master GO CREATE LOGIN login_name FROM EXTERNAL PROVIDER GOCet exemple permet de créer une connexion pour le compte
nativeuser@aadsqlmi.onmicrosoft.com.USE master GO CREATE LOGIN [nativeuser@aadsqlmi.onmicrosoft.com] FROM EXTERNAL PROVIDER GODans la barre d’outils, sélectionnez Exécuter pour créer la connexion.
Vérifiez la connexion nouvellement ajoutée en exécutant la commande T-SQL suivante :
SELECT * FROM sys.server_principals; GO
Pour plus d’informations, consultez CREATE LOGIN.
Accorder des autorisations pour créer des connexions
Les connexions existantes doivent disposer d’autorisations appropriées ou faire partie des rôles serveur appropriés pour créer d’autres connexions Microsoft Entra.
Connexions d’authentification SQL
Si la connexion est un principal de serveur basé sur l’authentification SQL, il doit être attribué au rôle sysadmin pour créer des connexions pour les comptes Microsoft Entra.
Connexions d’authentification Microsoft Entra
- Si la connexion est un principal de serveur Microsoft Entra, il doit être affecté au rôle serveur sysadmin ou securityadmin pour créer des connexions pour d’autres utilisateurs, groupes et applications Microsoft Entra.
- Au minimum, l’autorisation
ALTER ANY LOGINdoit être accordée pour créer d’autres connexions Microsoft Entra. - Par défaut, les autorisations standard accordées aux connexions Microsoft Entra nouvellement créées
mastersontCONNECT SQLetVIEW ANY DATABASE. - Le rôle serveur sysadmin peut être accordé à de nombreuses connexions Microsoft Entra au sein d’une instance managée SQL.
Pour ajouter la connexion au rôle serveur sysadmin :
Connectez-vous à l’instance managée SQL à nouveau ou utilisez la connexion existante avec l’administrateur Microsoft Entra ou le principal SQL qui est un administrateur système.
Dans l’Explorateur d’objets, cliquez avec le bouton droit sur le serveur, puis choisissez Nouvelle requête.
Accordez à Microsoft Entra login le rôle serveur sysadmin à l’aide de la syntaxe T-SQL suivante :
ALTER SERVER ROLE sysadmin ADD MEMBER login_name GOL’exemple suivant accorde le rôle serveur sysadmin à la connexion
nativeuser@aadsqlmi.onmicrosoft.com:ALTER SERVER ROLE sysadmin ADD MEMBER [nativeuser@aadsqlmi.onmicrosoft.com] GO
Créer des connexions Microsoft Entra supplémentaires à l’aide de SSMS
Une fois la connexion Microsoft Entra créée et accordée des privilèges sysadmin , cette connexion peut créer des connexions supplémentaires à l’aide de la FROM EXTERNAL PROVIDER clause avec CREATE LOGIN.
Connectez-vous à l’instance managée SQL avec la connexion Microsoft Entra en sélectionnant Se connecter au serveur dans SQL Server Management Studio (SSMS).
- Entrez le nom d’hôte de votre SQL Managed Instance dans Nom du serveur.
- Pour l’authentification, sélectionnez Microsoft Entra MFA pour afficher une fenêtre de connexion d’authentification multifacteur. Se connecter. Pour plus d’informations, consultez Authentification universelle (prise en charge de SSMS pour l’authentification multifacteur).
Dans l’Explorateur d’objets, cliquez avec le bouton droit sur le serveur, puis choisissez Nouvelle requête.
Dans la fenêtre Requête, utilisez la syntaxe suivante afin de créer une connexion pour un autre compte Microsoft Entra :
USE master GO CREATE LOGIN login_name FROM EXTERNAL PROVIDER GOCet exemple crée une connexion pour l’utilisateur
bob@aadsqlmi.netMicrosoft Entra, dont le domaineaadsqlmi.netest fédéré avec le domaine Microsoft Entraaadsqlmi.onmicrosoft.com.Exécutez la commande T-SQL suivante. Les comptes Microsoft Entra fédérés remplacent SQL Managed Instance pour les connexions et utilisateurs Windows locaux.
USE master GO CREATE LOGIN [bob@aadsqlmi.net] FROM EXTERNAL PROVIDER GOCréez une base de données dans l’instance managée SQL à l’aide de la syntaxe CREATE DATABASE . Cette base de données va être utilisée pour tester les connexions des utilisateurs dans la prochaine section.
Dans l’Explorateur d’objets, cliquez avec le bouton droit sur le serveur, puis choisissez Nouvelle requête.
Dans la fenêtre de requête, utilisez la syntaxe suivante pour créer une base de données nommée MyMITestDB.
CREATE DATABASE MyMITestDB; GO
Créez une connexion SQL Managed Instance pour un groupe dans Microsoft Entra ID. Le groupe doit exister dans Microsoft Entra ID pour permettre l’ajout de la connexion à SQL Managed Instance. Voir Créer un groupe de base et ajouter des membres à l’aide de Microsoft Entra ID. Créez un groupe mygroup et ajoutez des membres à ce groupe.
Ouvrez une nouvelle fenêtre de requête dans SQL Server Management Studio.
Cet exemple suppose qu’il existe un groupe appelé mygroup dans Microsoft Entra ID. Exécutez la commande suivante :
USE master GO CREATE LOGIN [mygroup] FROM EXTERNAL PROVIDER GOEn guise de test, connectez-vous à l’instance managée SQL avec la connexion ou le groupe nouvellement créé. Ouvrez une nouvelle connexion à l’instance managée SQL et utilisez la nouvelle connexion lors de l’authentification.
Dans l’Explorateur d’objets, cliquez avec le bouton droit sur le serveur, puis choisissez Nouvelle requête pour la nouvelle connexion.
Consultez les autorisations du serveur pour la connexion Microsoft Entra créée en exécutant la commande suivante :
SELECT * FROM sys.fn_my_permissions (NULL, 'DATABASE') GO
La prise en charge par Azure SQL des principaux Microsoft Entras en tant qu’utilisateurs et connexions s’étend à ID externe Microsoft Entra utilisateurs invités internes et externes. Les utilisateurs invités, individuellement et dans le cadre d’un groupe, peuvent être utilisés de la même façon que tout autre utilisateur Microsoft Entra dans Azure SQL. Si vous souhaitez que les utilisateurs invités puissent créer d’autres connexions de serveur Microsoft Entra ou des utilisateurs de base de données, ils doivent disposer des autorisations nécessaires pour lire d’autres identités dans l’annuaire Microsoft Entra. Cette autorisation est configurée au niveau du répertoire. Pour plus d’informations, consultez autorisations d'accès invités dans Microsoft Entra ID.
Créer un utilisateur Microsoft Entra à partir de la connexion Microsoft Entra
L’octroi d’autorisations pour des bases de données individuelles fonctionne sensiblement de la même façon dans SQL Managed Instance que pour les bases de données dans SQL Server. Vous pouvez créer un utilisateur à partir d’une connexion existante dans une base de données qui a accordé des autorisations à cette base de données ou ajoutée à un rôle de base de données.
Maintenant que nous avons créé une base de données appelée MyMITestDB et une connexion qui dispose uniquement des autorisations par défaut, l’étape suivante consiste à créer un utilisateur à partir de cette connexion. À l’heure actuelle, la connexion peut se connecter à l’instance managée SQL et voir toutes les bases de données, mais elle ne peut pas interagir avec les bases de données. Si vous vous connectez avec le compte Microsoft Entra disposant des autorisations par défaut et essayez de développer la base de données nouvellement créée, l’erreur suivante s’affiche :
Pour plus d’informations sur l’octroi d’autorisations de base de données, consultez Bien démarrer avec les autorisations du Moteur de base de données.
Créer un utilisateur Microsoft Entra et créer un exemple de table
Remarque
Il existe certaines limitations lorsqu’un utilisateur se connecte dans le cadre d’un groupe Microsoft Entra.
Par exemple, un appel à SUSER_SID renvoyer NULL, car l’utilisateur Microsoft Entra donné ne fait pas partie de la table sys.server_principals .
Par conséquent, l’accès à certaines procédures stockées ou à une liste d’autorisations accordées peut être limité dans ce cas.
Connectez-vous à votre instance managée SQL avec un compte sysadmin dans SQL Server Management Studio.
Dans l’Explorateur d’objets, cliquez avec le bouton droit sur le serveur, puis choisissez Nouvelle requête.
Dans la fenêtre Requête, utilisez la syntaxe suivante afin de créer un utilisateur à partir d’une connexion Microsoft Entra :
USE <Database Name> -- provide your database name GO CREATE USER user_name FROM LOGIN login_name GOL’exemple suivant permet de créer un utilisateur
bob@aadsqlmi.netà partir de la connexionbob@aadsqlmi.net:USE MyMITestDB GO CREATE USER [bob@aadsqlmi.net] FROM LOGIN [bob@aadsqlmi.net] GOIl est également pris en charge pour créer un utilisateur Microsoft Entra à partir d’une connexion Microsoft Entra qui est un groupe.
L’exemple suivant crée une connexion pour le groupe Microsoft Entra mygroup qui existe dans votre locataire Microsoft Entra :
USE MyMITestDB GO CREATE USER [mygroup] FROM LOGIN [mygroup] GOTous les utilisateurs appartenant à mygroup peuvent accéder à la base de données MyMITestDB.
Important
Lors de la création d’un utilisateur à partir d’une connexion Microsoft Entra, spécifiez l’user_name comme login_name à partir de
LOGIN.Pour plus d’informations, consultez CREATE USER.
Dans une nouvelle fenêtre de requête, créez une table de test à l’aide de la commande T-SQL suivante :
USE MyMITestDB GO CREATE TABLE TestTable ( AccountNum varchar(10), City varchar(255), Name varchar(255), State varchar(2) );Créez une connexion dans SSMS avec l’utilisateur créé. Vous remarquerez que vous ne pouvez pas voir la table TestTable créée précédemment par l’administrateur système . Nous devons donner à l’utilisateur les autorisations nécessaires pour lire les données de la base de données.
Vous pouvez vérifier l’autorisation actuelle de l’utilisateur en exécutant la commande suivante :
SELECT * FROM sys.fn_my_permissions('MyMITestDB','DATABASE') GO
Ajouter des utilisateurs aux rôles de base de données
Pour que les utilisateurs puissent voir les données de la base de données, nous pouvons leur attribuer des rôles de base de données.
Connectez-vous à votre instance managée SQL avec un compte sysadmin à l’aide de SQL Server Management Studio.
Dans l’Explorateur d’objets, cliquez avec le bouton droit sur le serveur, puis choisissez Nouvelle requête.
Accordez à l’utilisateur Microsoft Entra le rôle de base de données db_datareader à l’aide de la syntaxe T-SQL suivante :
Use <Database Name> -- provide your database name ALTER ROLE db_datareader ADD MEMBER user_name GOL’exemple suivant fournit à l’utilisateur
bob@aadsqlmi.netet au groupe mygroup des autorisations db_datareader sur la base de données MyMITestDB :USE MyMITestDB GO ALTER ROLE db_datareader ADD MEMBER [bob@aadsqlmi.net] GO ALTER ROLE db_datareader ADD MEMBER [mygroup] GOVérifiez que l’utilisateur Microsoft Entra qui a été créé dans la base de données existe en exécutant la commande suivante :
SELECT * FROM sys.database_principals GOCréez une connexion à l’instance managée SQL avec l’utilisateur qui a été ajouté au rôle db_datareader .
Développez la base de données dans l’Explorateur d’objets pour voir la table.
Ouvrez une nouvelle fenêtre de requête et exécutez l’instruction suivante
SELECT:SELECT * FROM TestTablePouvez-vous voir les données de la table ? Vous devez voir les colonnes retournées comme illustré dans la capture d’écran suivante :
Usurper l’identité des connexions Microsoft Entra
SQL Managed Instance prend en charge l’usurpation d’identité des connexions Microsoft Entra.
Tester l’emprunt d’identité
Connectez-vous à votre instance managée SQL avec un compte sysadmin à l’aide de SQL Server Management Studio.
Dans l’Explorateur d’objets, cliquez avec le bouton droit sur le serveur, puis choisissez Nouvelle requête.
Dans la fenêtre de requête, utilisez la commande suivante pour créer une procédure stockée :
USE MyMITestDB GO CREATE PROCEDURE dbo.usp_Demo WITH EXECUTE AS 'bob@aadsqlmi.net' AS SELECT user_name(); GOUtilisez la commande suivante pour voir que l’utilisateur dont vous empruntez l’identité durant l’exécution de la procédure stockée est
bob@aadsqlmi.net.Exec dbo.usp_DemoTestez l’emprunt d’identité à l’aide de l’instruction
EXECUTE AS LOGIN:EXECUTE AS LOGIN = 'bob@aadsqlmi.net' GO SELECT SUSER_SNAME() REVERT GO
Remarque
Seules les connexions au niveau du serveur SQL qui font partie du rôle sysadmin peuvent exécuter les opérations suivantes ciblant les principaux Microsoft Entra :
EXECUTE AS USEREXECUTE AS LOGIN
Utiliser des requêtes de bases de données croisées
Les requêtes inter-bases de données sont prises en charge pour les comptes Microsoft Entra avec les connexions Microsoft Entra. Pour tester une requête de base de données croisée avec un groupe Microsoft Entra, nous devons créer une autre base de données et une autre table. Vous pouvez ignorer la création d’une autre base de données et d’une autre table, si elles existent déjà.
Connectez-vous à votre instance managée SQL avec un compte sysadmin à l’aide de SQL Server Management Studio.
Dans l’Explorateur d’objets, cliquez avec le bouton droit sur le serveur, puis choisissez Nouvelle requête.
Dans la fenêtre de requête, utilisez la commande suivante pour créer une base de données nommée MyMITestDB2 et une table nommée TestTable2 :
CREATE DATABASE MyMITestDB2; GO USE MyMITestDB2 GO CREATE TABLE TestTable2 ( EmpId varchar(10), FirstName varchar(255), LastName varchar(255), Status varchar(10) );Dans une nouvelle fenêtre de requête, exécutez la commande suivante pour créer l’utilisateur mygroup dans la nouvelle base de données MyMITestDB2 et accorder
SELECTdes autorisations sur cette base de données à mygroup :USE MyMITestDB2 GO CREATE USER [mygroup] FROM LOGIN [mygroup] GO GRANT SELECT TO [mygroup] GOConnectez-vous à l’instance managée SQL à l’aide de SQL Server Management Studio en tant que membre du groupe Microsoft Entra mygroup. Ouvrez une nouvelle fenêtre de requête et exécutez l’instruction cross-database
SELECT:USE MyMITestDB SELECT * FROM MyMITestDB2..TestTable2 GOVous devez voir les résultats de la table dans TestTable2.
Autres scénarios pris en charge
- La gestion et les exécutions de travaux SQL Agent sont prises en charge pour les connexions Microsoft Entra.
- Les connexions Microsoft Entra peuvent exécuter des opérations de sauvegarde et de restauration de base de données.
- Audit de toutes les instructions liées aux connexions et aux événements d’authentification Microsoft Entra.
- Connexion administrateur dédiée pour les connexions Microsoft Entra qui sont membres du rôle serveur sysadmin .
- Les connexions Microsoft Entra sont prises en charge par l’utilitaire sqlcmd et l’outil SQL Server Management Studio.
- Les déclencheurs d’ouverture de session sont pris en charge pour les événements d’ouverture de session provenant de connexions Microsoft Entra.
- Vous pouvez configurer Service Broker et Database Mail à l’aide de connexions Microsoft Entra.
Contenu connexe
- Fonctionnalités de sécurité SQL Managed Instance
- Commencez avec l’audit de Azure SQL Managed Instance
- Always Encrypted
- Configurer Advanced Threat Protection dans Azure SQL Managed Instance
- Masquage des données dynamiques
- Sécurité au niveau des lignes
- Chiffrement transparent des données (TDE)
- Qu’est-ce qu’Azure SQL Managed Instance ?