Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Database in Microsoft Fabric
Hiermee maakt u een databasereferentie. Een database-credential wordt niet gekoppeld aan een serverlogin of databasegebruiker. De database gebruikt het inloggegevens om toegang te krijgen tot de externe bron wanneer een operatie wordt uitgevoerd die toegang vereist.
Transact-SQL syntaxis-conventies
Syntax
CREATE DATABASE SCOPED CREDENTIAL credential_name
WITH IDENTITY = 'identity_name'
[ , SECRET = 'secret' ]
[ ; ]
Arguments
credential_name
Hiermee geeft u de naam op van de databasereferentie die wordt gemaakt.
credential_name kan niet beginnen met het nummerteken (#). Systeemreferenties beginnen met ##. De maximale lengte van credential_name is 128 tekens.
IDENTITEIT = 'identity_name'
Geeft de naam van het account aan dat gebruikt moet worden bij verbinding buiten de server.
Als u een bestand wilt importeren uit Azure Blob Storage of Azure Data Lake Storage met behulp van een gedeelde sleutel, moet de identiteitsnaam zijn
SHARED ACCESS SIGNATURE. Zie Shared Access Signatures (SAS) gebruiken voor meer informatie over handtekeningen voor gedeelde toegang. Alleen gebruikenIDENTITY = SHARED ACCESS SIGNATUREvoor een handtekening voor gedeelde toegang.Als u een bestand wilt importeren uit Azure Blob Storage met behulp van een beheerde identiteit, moet de identiteitsnaam zijn
MANAGED IDENTITY.Bij gebruik van Kerberos (Windows Active Directory of MIT KDC), gebruik dan niet de domeinnaam in het
IDENTITYargument. Dit moet alleen de accountnaam zijn.In een SQL Server-instantie, als je een database-scoped credential aanmaakt met een Storage Access Key als de
SECRET,IDENTITYwordt genegeerd.WITH IDENTITYis niet vereist als de container in Azure Blob Storage anoniem toegang kan geven. ZieOPENROWSET BULKStorage.In SQL Server 2022 (16.x) en latere versies vervangt de REST-API-connector HADOOP. Voor Azure Blob Storage en Azure Data Lake Gen 2 is de enige ondersteunde verificatiemethode shared access Signature. Zie CREATE EXTERNAL DATA SOURCEvoor meer informatie.
In SQL Server 2019 (15.x) is Hadoop de enige externe PolyBase-gegevensbron die Kerberos-verificatie ondersteunt. Alle andere externe gegevensbronnen (SQL Server, Oracle, Teradata, MongoDB, algemene ODBC) ondersteunen alleen basisverificatie.
SQL-pools in Azure Synapse Analytics bevatten de volgende notities:
- Om data in Azure Synapse Analytics te laden, kun je elke geldige waarde gebruiken voor
IDENTITY. - In een serverloze SQL-pool van Azure Synapse Analytics kunnen databasereferenties een beheerde identiteit, service-principalnaam of SAS-token (Shared Access Signature) opgeven. Toegang via een gebruikersidentiteit, mogelijk gemaakt door gebruikersaanmelding met Microsoft Entra pass-through authenticatie, is ook mogelijk met een database-scoped credential, evenals anonieme toegang tot openbaar beschikbare opslag. Zie Ondersteunde typen opslagautorisatie voor meer informatie.
- In een toegewezen SQL-pool van Azure Synapse Analytics kunnen databasereferenties sas-token (Shared Access Signature), aangepaste toepassingsidentiteit, beheerde identiteit van werkruimte of toegangssleutel voor opslag opgeven.
- Om data in Azure Synapse Analytics te laden, kun je elke geldige waarde gebruiken voor
| Authentication | T-SQL | Supported | Notes |
|---|---|---|---|
| Gedeelde Toegangshandtekening (SAS) | CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'SHARED ACCESS SIGNATURE', SECRET = 'secret'; |
SQL Server 2022 en hoger, Azure SQL Managed Instance, Azure Synapse Analytics, Azure SQL Database | |
| Beheerde identiteit | CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'MANAGED IDENTITY'; |
Azure SQL Database, Azure SQL Managed Instance, SQL Server 2025 met Azure Arc | Om Azure Arc in te schakelen, zie Managed identity for SQL Server enabled by Azure Arc |
| PassThrough-verificatie van Microsoft Entra via gebruikersidentiteit | CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'USER IDENTITY'; |
|
In Azure Synapse, zie User sign-in with Microsoft Entra pass-through authentication |
| Basisverificatie van S3-toegangssleutel | CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'S3 ACCESS KEY', SECRET = '<accesskey>:<secretkey>'; |
SQL Server 2022 en latere versies | |
| ODBC-gegevensbronnen of Kerberos (MIT KDC) |
CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = '<identity_name>', SECRET = '<secret>'; |
SQL Server 2019 en latere versies |
1 In een SQL-database in Microsoft Fabric, als je geen database-scope credential specificeert, staat de authenticatiemethode standaard op 'USER IDENTITY' en gebruikt het Microsoft Entra ID-gebruikersaccount als context.
SECRET = 'geheim'
Hiermee geeft u het geheim op dat is vereist voor uitgaande verificatie.
SECRET is vereist voor het importeren van een bestand uit Azure Blob Storage. Als u vanuit Azure Blob Storage wilt laden in Azure Synapse Analytics of Parallel Data Warehouse, moet het geheim de Azure Storage-sleutel zijn.
Warning
De SAS-sleutelwaarde kan beginnen met een vraagteken (?). Wanneer u de SAS-sleutel gebruikt, verwijdert u de voorloop ?.
Remarks
Een databasereferentie is een record die de verificatiegegevens bevat die nodig zijn om verbinding te maken met een resource buiten SQL Server. De meeste referenties bevatten een Windows-gebruiker en -wachtwoord.
Als u de gevoelige informatie in de databasereferenties wilt beveiligen, is een databasehoofdsleutel (DMK) vereist. De DMK is een symmetrische sleutel waarmee het geheim in de databasereferentie wordt versleuteld. De database moet een DMK hebben voordat je databasescoped credentials kunt aanmaken. Versleutel de DMK met een sterk wachtwoord. Azure SQL Database maakt een DMK aan met een sterk, willekeurig geselecteerd wachtwoord als onderdeel van het creëren van de databasescoped credential, of als onderdeel van het maken van een serveraudit.
Gebruikers kunnen de DMK niet maken in een logische master database. Het DMK-wachtwoord is onbekend bij Microsoft en niet meer te vinden na het aanmaken. Maak een DMK aan voordat je een database-scope credential aanmaakt. Zie CREATE MASTER KEYvoor meer informatie.
Als Windows-gebruiker IDENTITY kan het geheim het wachtwoord zijn. Het geheim wordt versleuteld met de service master key (SMK). Als je de SMK regenereert, wordt het geheim opnieuw versleuteld met de nieuwe SMK.
Wanneer je rechten verleent voor een shared access-handtekening (SAS) voor gebruik met een PolyBase-externe tabel, selecteer je zowel Container als Object als toegestane resourcetypen. Als je deze rechten niet verleent, kun je foutmelding 16535 of 16561 krijgen wanneer je probeert toegang te krijgen tot de externe tabel.
Voor informatie over databasescoped credentials, zie de catalogusweergave sys.database_scoped_credentials .
Hier volgen enkele toepassingen met databasereferenties:
SQL Server gebruikt een databasereferentie voor toegang tot niet-openbare Azure Blob Storage- of Kerberos-beveiligde Hadoop-clusters met PolyBase. Zie CREATE EXTERNAL DATA SOURCEvoor meer informatie.
Azure Synapse Analytics maakt gebruik van een databasereferentie voor toegang tot niet-openbare Azure Blob Storage met PolyBase. Zie CREATE EXTERNAL DATA SOURCEvoor meer informatie. Zie Externe tabellen gebruiken met Synapse SQL voor meer informatie over Azure Synapse-opslagverificatie.
SQL Database gebruikt databasescoped credentials voor zijn elastic query-functie , waarmee queries over meerdere databaseshards kunnen worden uitgevoerd.
SQL Database maakt gebruik van databasereferenties voor het schrijven van uitgebreide gebeurtenisbestanden naar Azure Blob Storage.
SQL Database maakt gebruik van databasereferenties voor elastische pools. Voor meer informatie, zie Elastic pools helpen je meerdere databases te beheren en op te schalen in Azure SQL Database
BULK INSERT en OPENROWSET gebruiken databasescoped credentials om data uit Azure Blob Storage te benaderen. Voor meer informatie, zie Voorbeelden van bulktoegang tot data in Azure Blob Storage.
Gebruik databasereferenties met PolyBase- en gegevensvirtualisatie van Azure SQL Managed Instance functies.
Voor
BACKUP TO URLenRESTORE FROM URL, gebruik in plaats daarvan een server-niveau credential via CREATE CREDENTIAL .Gebruik databasescoped credentials met CREATE EXTERNAL MODEL
Permissions
Vereist CONTROL machtiging voor de database.
Examples
A. Een databasereferentie maken voor uw toepassing
In het volgende voorbeeld wordt de databasereferentie met de naam AppCredgemaakt. De referentie voor het databasebereik bevat de Windows-gebruiker Mary5 en een wachtwoord.
Maak een DMK aan als die nog niet bestaat. Gebruik geen leeg wachtwoord. Gebruik een sterk wachtwoord.
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>';
Maak een database-scoped credential aan:
CREATE DATABASE SCOPED CREDENTIAL AppCred
WITH IDENTITY = 'Mary5',
SECRET = '<password>';
B. Een databasereferentie maken voor een Shared Access Signature
Het volgende voorbeeld creëert een database-scoped credential die je kunt gebruiken om een externe databron aan te maken. Dit inloggegevens kan bulkbewerkingen uitvoeren, zoals BULK INSERT en OPENROWSET BULK.
Maak een DMK aan als die nog niet bestaat. Gebruik geen leeg wachtwoord. Gebruik een sterk wachtwoord.
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>';
Maak een databasereferentie binnen het bereik. Vervang <key> door de juiste waarde.
CREATE DATABASE SCOPED CREDENTIAL MyCredentials
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = '<key>';
C. Een databasereferentie maken voor PolyBase-connectiviteit met Azure Data Lake Store
In het volgende voorbeeld wordt een databasereferentie gemaakt die kan worden gebruikt voor het maken van een externe gegevensbron, die kan worden gebruikt door PolyBase in Azure Synapse Analytics.
Azure Data Lake Store gebruikt een Microsoft Entra-applicatie voor service-to-service authenticatie.
Maak een Microsoft Entra-toepassing en documenteer uw client_id, OAuth_2.0_Token_EndPoint en Key voordat u probeert een referentie met databasebereik te maken.
Maak een DMK aan als die nog niet bestaat. Gebruik geen leeg wachtwoord. Gebruik een sterk wachtwoord.
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>';
Maak een databasereferentie binnen het bereik. Vervang <key> door de juiste waarde.
CREATE DATABASE SCOPED CREDENTIAL ADL_User
WITH IDENTITY = '<client_id>@<OAuth_2.0_Token_EndPoint>',
SECRET = '<key>';
D. Een databasereferentie maken met beheerde identiteit
Van toepassing op: SQL Server 2025 (17.x) en latere versies
SQL Server 2025 (17.x) introduceert ondersteuning voor door Microsoft Entra beheerde identiteiten. Voor informatie over hoe je een beheerde identiteit gebruikt met SQL Server ingeschakeld door Azure Arc, zie Beheerde identiteit voor SQL Server ingeschakeld door Azure Arc.
EXECUTE sp_configure 'allow server scoped db credentials', 1;
RECONFIGURE;
GO
CREATE DATABASE SCOPED CREDENTIAL [managed_id]
WITH IDENTITY = 'Managed Identity';
E. Maak een databasescoped credential aan met Microsoft Entra ID
Van toepassing op: Azure SQL Database, SQL database in Microsoft Fabric
In Azure SQL Database en SQL Database in Microsoft Fabric kun je je eigen Microsoft Entra ID-account gebruiken om een externe databron te authenticeren.
In een SQL-database in Microsoft Fabric, als je geen database-scoped credential specificeert, wordt de authenticatiemethode standaard gebruikt USER IDENTITY en gebruikt het het Entra-ID gebruikersaccount als context.
CREATE DATABASE SCOPED CREDENTIAL MyCredential
WITH IDENTITY = 'User Identity';