Partager via


CRÉER UNE CERTIFICATION À PORTÉE DE BASE DE DONNÉES (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Base de données SQL dans Microsoft Fabric

Crée les informations d’identification d’une base de données. Une identifiante de base de données n’est pas associée à un identifiant serveur ou à un utilisateur de base de données. La base de données utilise l’identifiant pour accéder à la ressource externe lorsqu’elle 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.

IDENTITÉ = 'identity_name'

Précise le nom du compte à utiliser lors de la 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 que IDENTITY = SHARED ACCESS SIGNATURE pour 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 une identifiante à portée de base de données avec une clé d’accès au stockage utilisée comme , SECRETIDENTITY est ignoré.

  • WITH IDENTITY n’est pas nécessaire si le conteneur dans le stockage Azure Blob est activé pour un accès anonyme. Pour obtenir un exemple d’interrogation du stockage Blob Azure avec OPENROWSET 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 CRÉER UNE SOURCE DE DONNÉES EXTERNES.

  • 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 notes suivantes :

    • Pour charger des données dans Azure Synapse Analytics, vous pouvez utiliser n’importe quelle valeur valide 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, rendu possible par la connexion utilisateur via l’authentification Microsoft Entra, est également possible avec une identification portée de base de données, tout comme l’accès anonyme au stockage public. 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.
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, voir Identité gérée 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, SQL database dans Microsoft Fabric 1 Dans Azure Synapse, voir connexion utilisateur avec authentification pass-through Microsoft Entra
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

1 Dans la base de données SQL de Microsoft Fabric, si vous ne spécifiez pas une identifiante à portée de base de données, la méthode d’authentification est par défaut « IDENTITÉ UTILISATEUR » et utilise le compte utilisateur Microsoft Entra ID comme contexte.

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 de pouvoir créer des identifiants à portée de base de données. Chiffrez le DMK avec un mot de passe fort. Azure SQL Database crée un DMK avec un mot de passe fort et choisi aléatoirement dans le cadre de la création de l’identifiant à portée de base de données, ou dans le cadre d’un audit serveur.

Les utilisateurs ne peuvent pas créer le DMK sur une base de données logique master . Le mot de passe DMK est inconnu de Microsoft et ne peut pas être détecté après la création. Créez un DMK avant de créer une certification à base de données avec un périmètre de données. Pour plus d’informations, consultez CREATE MASTER KEY.

Quand IDENTITY un utilisateur Windows, le secret peut être le mot de passe. Le secret est chiffré avec la clé maîtresse de service (SMK). Si vous régénérez le SMK, le secret est re-chiffré avec le nouveau SMK.

Lors de l’octroi d’autorisations pour une signature d’accès partagé (SAS) à utiliser avec une table externe PolyBase, sélectionnez à la fois Conteneur et Objet comme types de ressources autorisés. Si vous n’accordez pas ces permissions, vous pourriez recevoir l’erreur 16535 ou 16561 lors de la tentative d’accès à la table externe.

Pour des informations sur les identifiants à portée de base de données, consultez la vue sys.database_scoped_credentials catalogue.

Voici certaines applications d’informations d’identification délimitées à la base de données :

Permissions

Requiert 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.

Créez un DMK s’il n’en existe pas déjà. N'utilisez pas de mot de passe vide. Utilisez un mot de passe fort.

CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>';

Créez une certification à base de données avec un champ d’application :

CREATE DATABASE SCOPED CREDENTIAL AppCred
WITH IDENTITY = 'Mary5',
     SECRET = '<password>';

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 une certification à portée de base de données que vous pouvez utiliser pour créer une source de données externe. Cette certification peut effectuer des opérations en bloc, telles que BULK INSERT et OPENROWSET BULK.

Créez un DMK s’il n’en existe pas déjà. N'utilisez pas de mot de passe vide. Utilisez un mot de passe fort.

CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>';

Créez des informations d’identification délimitées à la base de données. Remplacez par <key> la valeur appropriée.

CREATE DATABASE SCOPED CREDENTIAL MyCredentials
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
     SECRET = '<key>';

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 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.

Créez un DMK s’il n’en existe pas déjà. N'utilisez pas de mot de passe vide. Utilisez un mot de passe fort.

CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>';

Créez des informations d’identification délimitées à la base de données. Remplacez par <key> la valeur appropriée.

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 à : SQL Server 2025 (17.x) et versions ultérieures

SQL Server 2025 (17.x) introduit la prise en charge des identités managées Microsoft Entra. Pour des informations sur la manière d’utiliser une identité managée avec SQL Server activé par Azure Arc, voir Identité managée pour SQL Server activée par Azure Arc.

EXECUTE sp_configure 'allow server scoped db credentials', 1;
RECONFIGURE;
GO

CREATE DATABASE SCOPED CREDENTIAL [managed_id]
WITH IDENTITY = 'Managed Identity';

E. Créez une certification à portée de base de données en utilisant Microsoft Entra ID

S’applique à : Azure SQL Database, base de données SQL dans Microsoft Fabric

Dans Azure SQL Database et SQL Database dans Microsoft Fabric, vous pouvez utiliser votre propre compte Microsoft Entra ID pour authentifier une source de données externe.

Dans la base de données SQL de Microsoft Fabric, si vous ne spécifiez pas de crédent avec un champ d’application de base de données, la méthode d’authentification est par défaut et USER IDENTITY utilise le compte utilisateur Entra ID comme contexte.

CREATE DATABASE SCOPED CREDENTIAL MyCredential
WITH IDENTITY = 'User Identity';