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 à :SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Base de données SQL dans Microsoft Fabric Preview
Crée les informations d’identification d’une base de données. Les informations d’identification d’une base de données ne sont pas mappées à un compte de connexion de serveur ou à un utilisateur de la base de données. Les informations d’identification sont utilisées par la base de données pour accéder à l’emplacement externe chaque fois que la base de données effectue une opération nécessitant un accès.
Conventions de la syntaxe Transact-SQL
Syntax
CREATE DATABASE SCOPED CREDENTIAL credential_name
WITH IDENTITY = 'identity_name'
[ , SECRET = 'secret' ]
[ ; ]
Arguments
credential_name
Spécifie le nom des informations d’identification délimitées à la base de données en cours de création.
credential_name ne peut pas commencer par le signe numérique (#). Les informations d’identification système commencent par ##. La longueur maximale de credential_name est de 128 caractères.
IDENTITY = 'identity_name'
Spécifie le nom du compte à utiliser lors d'une connexion en dehors du serveur.
- Pour importer un fichier à partir du Stockage Blob Azure ou d’Azure Data Lake Storage avec une clé partagée, le nom de l’identité doit être
SHARED ACCESS SIGNATURE. Pour plus d’informations sur les signatures d’accès partagé, consultez Utilisation des signatures d’accès partagé (SAP). N’utilisez queIDENTITY = SHARED ACCESS SIGNATUREpour une signature d’accès partagé. - Pour importer un fichier à partir de Stockage Blob Azure en utilisant une identité managée, le nom de l’identité doit être
MANAGED IDENTITY. - Lorsque vous utilisez Kerberos (Windows Active Directory ou MIT KDC) n’utilisez pas le nom de domaine dans l’argument
IDENTITY. Il doit s’agir simplement du nom du compte. - Dans une instance SQL Server, si vous créez des informations d’identification délimitées à la base de données avec une clé d’accès de stockage utilisée comme
SECRETélément ,IDENTITYelle est ignorée. -
WITH IDENTITYn’est pas nécessaire si le conteneur du stockage Blob Azure est activé pour l’accès anonyme. Pour obtenir un exemple d’interrogation du stockage Blob Azure avecOPENROWSET BULK, consultez Importer dans une table à partir d’un fichier stocké sur stockage Blob Azure. - Dans SQL Server 2022 (16.x) et versions ultérieures, le connecteur REST-API remplace HADOOP. Pour Stockage Blob Azure et Azure Data Lake Gen 2, la seule méthode d’authentification prise en charge est la signature d’accès partagé. Pour plus d’informations, consultez CREATE EXTERNAL DATA SOURCE (Transact-SQL).
- Dans SQL Server 2019 (15.x), la seule source de données externe PolyBase qui prend en charge l’authentification Kerberos est Hadoop. Toutes les autres sources de données externes (SQL Server, Oracle, Teradata, MongoDB, ODBC générique) prennent en charge seulement l’authentification de base.
- Les pools SQL dans Azure Synapse Analytics incluent les remarques suivantes :
- Pour charger des données dans Azure Synapse Analytics, toute valeur valide peut être utilisée pour
IDENTITY. - Dans un pool SQL serverless Azure Synapse Analytics, les informations d’identification délimitées à la base de données peuvent spécifier une identité managée d’espace de travail, un nom de principal de service ou un jeton de signature d’accès partagé (SAP). L’accès via une identité utilisateur, activée par l’authentification directe De Microsoft Entra, est également possible avec des informations d’identification délimitées à la base de données, tout comme l’accès anonyme au stockage disponible publiquement. Pour plus d’informations, consultez Types d’autorisation de stockage pris en charge.
- Dans un pool SQL dédié Azure Synapse Analytics, les informations d’identification délimitées à la base de données peuvent spécifier un jeton de signature d’accès partagé (SAP), une identité d’application personnalisée, une identité managée de l’espace de travail ou une clé d’accès au stockage.
- Pour charger des données dans Azure Synapse Analytics, toute valeur valide peut être utilisée pour
| Authentication | T-SQL | Supported | Notes |
|---|---|---|---|
| Signature d’accès partagé (SAP) | CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'SHARED ACCESS SIGNATURE', SECRET = 'secret'; |
SQL Server 2022 et versions ultérieures, Azure SQL Managed Instance, Azure Synapse Analytics, Azure SQL Database | |
| Identité gérée | CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'MANAGED IDENTITY'; |
Azure SQL Database, Azure SQL Managed Instance, SQL Server 2025 avec Azure Arc | Pour activer Azure Arc, consultez l’identité managée (préversion) pour SQL Server activée par Azure Arc |
| Authentification directe Microsoft Entra via l’identité utilisateur | CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'USER IDENTITY'; |
Azure SQL Database | Dans Azure Synapse, consultez Microsoft Entra Connect : Authentification directe |
| Authentification de base de la clé d’accès S3 | CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'S3 ACCESS KEY', SECRET = '<accesskey>:<secretkey>'; |
SQL Server 2022 et versions ultérieures | |
| Sources de données ODBC ou Kerberos (KDC MIT) |
CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = '<identity_name>', SECRET = '<secret>'; |
SQL Server 2019 et versions ultérieures |
SECRET = 'secret'
Spécifie le secret requis pour l'authentification sortante.
SECRET est obligatoire pour importer un fichier à partir du stockage Blob Azure. Pour effectuer le chargement du Stockage Blob Azure vers Azure Synapse Analytics ou Parallel Data Warehouse, le secret doit être la clé de stockage Azure.
Warning
La valeur de clé SAP peut commencer par un point d’interrogation (?). Lorsque vous utilisez la clé SAP, supprimez le début ?.
Remarks
Les informations d’identification délimitées à la base de données sont un enregistrement qui contient les informations d’authentification exigées pour la connexion à une ressource en dehors de SQL Server. La plupart des informations d'identification incluent un utilisateur et un mot de passe Windows.
Pour protéger les informations sensibles à l’intérieur des informations d’identification délimitées à la base de données, une clé principale de base de données (DMK) est requise. Le DMK est une clé symétrique qui chiffre le secret dans les informations d’identification délimitées à la base de données. La base de données doit avoir un DMK avant la création d’informations d’identification délimitées à la base de données. Un DMK doit être chiffré avec un mot de passe fort. Azure SQL Database crée un DMK avec un mot de passe fort et sélectionné de manière aléatoire dans le cadre de la création des informations d’identification délimitées à la base de données ou dans le cadre de la création d’un audit de serveur. Les utilisateurs ne peuvent pas créer le DMK sur une base de données logique master . Le mot de passe de clé principale est inconnu de Microsoft et n’est pas détectable après la création. Pour cette raison, la création d’un DMK avant de créer des informations d’identification délimitées à la base de données est recommandée. Pour plus d’informations, consultez CREATE MASTER KEY (Transact-SQL).
Lorsque IDENTITY correspond à un utilisateur Windows, le secret peut être le mot de passe. Le secret est chiffré à l’aide de la clé principale du service (SMK). Si le SMK est régénéré, le secret est rechiffré à l’aide du nouveau SMK.
Lors de l’octroi d’autorisations pour une signature d’accès partagé (SAP) à utiliser avec une table externe PolyBase, sélectionnez Conteneur et Objet comme types de ressources autorisés. S’il n’est pas accordé, vous pouvez recevoir l’erreur 16535 ou 16561 lors de la tentative d’accès à la table externe.
Des détails sur les informations d’identification délimitées à la base de données sont consultables dans la vue de catalogue sys.database_scoped_credentials.
Voici certaines applications d’informations d’identification délimitées à la base de données :
SQL Server utilise des informations d’identification limitées à la base de données pour accéder au Stockage Blob Azure non public ou à des clusters Hadoop sécurisés par Kerberos avec PolyBase. Pour en savoir plus, consultez CREATE EXTERNAL DATA SOURCE (Transact-SQL).
Azure Synapse Analytics utilise des informations d’identification limitées à la base de données pour accéder au Stockage Blob Azure non public avec PolyBase. Pour en savoir plus, consultez CREATE EXTERNAL DATA SOURCE (Transact-SQL). Pour plus d’informations sur l’authentification de stockage Azure Synapse, consultez Utiliser des tables externes avec Synapse SQL.
SQL Database utilise des informations d’identification délimitées à la base de données pour sa fonctionnalité de requête élastique. Il s’agit de la possibilité d’effectuer des requêtes sur plusieurs partitionnements de base de données.
SQL Database utilise des informations d’identification limitées à la base de données pour écrire des fichiers d’événements étendus dans Stockage Blob Azure.
SQL Database utilise les informations d’identification délimitées à la base de données pour les pools élastiques. Pour plus d’informations, consultez la rubrique expliquant comment maîtriser la croissance spectaculaire des bases de données élastiques.
BULK INSERT (Transact-SQL) et OPENROWSET (Transact-SQL) utilisent des informations d’identification délimitées à la base de données pour accéder aux données à partir du Stockage Blob Azure. Pour plus d’informations, consultez Exemples d’accès en bloc à des données dans Stockage Blob Azure.
Utilisez des informations d’identification délimitées à la base de données avec les fonctionnalités de virtualisation des données PolyBase et Azure SQL Managed Instance.
Pour
BACKUP TO URLetRESTORE FROM URL, utilisez des informations d’identification au niveau du serveur via CREATE CREDENTIAL (Transact-SQL) à la place.
Permissions
Exige l’autorisation CONTROL sur la base de données.
Examples
A. Créer des informations d’identification délimitées à la base de données pour votre application
L’exemple suivant crée des informations d’identification délimitées à la base de données nommées AppCred. Les informations d’identification délimitées à la base de données contiennent l’utilisateur Windows Mary5 et un mot de passe.
-- Create a db master key if one does not already exist, using your own password.
CREATE MASTER KEY ENCRYPTION BY PASSWORD='<EnterStrongPasswordHere>';
-- Create a database scoped credential.
CREATE DATABASE SCOPED CREDENTIAL AppCred WITH IDENTITY = 'Mary5',
SECRET = '<EnterStrongPasswordHere>';
B. Créer des informations d’identification délimitées à la base de données pour une signature d’accès partagé
L’exemple suivant crée des informations d’identification délimitées à la base de données qui peuvent être utilisées pour créer une source de données externe, qui peut effectuer des opérations en bloc, telles que BULK INSERT (Transact-SQL) et OPENROWSET (Transact-SQL).
-- Create a db master key if one does not already exist, using your own password.
CREATE MASTER KEY ENCRYPTION BY PASSWORD='<EnterStrongPasswordHere>';
-- Create a database scoped credential.
CREATE DATABASE SCOPED CREDENTIAL MyCredentials
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'QLYMgmSXMklt%2FI1U6DcVrQixnlU5Sgbtk1qDRakUBGs%3D';
C. Créer des informations d’identification délimitées à la base de données pour la connectivité PolyBase à Azure Data Lake Store
L’exemple suivant crée des informations d’identification délimitées à la base de données qui peuvent être utilisées pour créer une source de données externe, qui peut être utilisée par PolyBase dans Azure Synapse Analytics.
Azure Data Lake Store utilise une application Microsoft Entra pour l’authentification de service à service.
Créez une application Microsoft Entra et documentez votre client_id, OAuth_2.0_Token_EndPoint et Key avant d’essayer de créer des informations d’identification délimitées à la base de données.
-- Create a db master key if one does not already exist, using your own password.
CREATE MASTER KEY ENCRYPTION BY PASSWORD='<EnterStrongPasswordHere>';
-- Create a database scoped credential.
CREATE DATABASE SCOPED CREDENTIAL ADL_User
WITH
IDENTITY = '<client_id>@<OAuth_2.0_Token_EndPoint>',
SECRET = '<key>';
D. Créer des informations d’identification délimitées à une base de données à l’aide de l’identité managée
S’applique à : Préversion de SQL Server 2025 (17.x)
SQL Server 2025 (17.x) Préversion introduit la prise en charge des identités managées Microsoft Entra. Pour plus d’informations sur l’utilisation d’une identité managée avec SQL Server activé par Azure Arc, consultez Managed Identity.
SP_CONFIGURE 'allow server scoped db credentials',1;
RECONFIGURE;
CREATE DATABASE SCOPED CREDENTIAL [managed_id]
WITH IDENTITY = 'Managed Identity';