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 Preview
Hiermee maakt u een databasereferentie. Een databasereferentie is niet toegewezen aan een serveraanmelding of databasegebruiker. De referentie wordt door de database gebruikt voor toegang tot de externe locatie wanneer de database een bewerking uitvoert waarvoor toegang is 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.
IDENTITY = 'identity_name'
Hiermee geeft u de naam op van het account dat moet worden gebruikt bij het maken van 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 SIGNATURE
voor 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
. - Wanneer u Kerberos (Windows Active Directory of MIT KDC) gebruikt, gebruikt u niet de domeinnaam in het
IDENTITY
argument. Dit moet alleen de accountnaam zijn. - Als u in een SQL Server-exemplaar een databasereferentie met een opslagtoegangssleutel maakt die wordt gebruikt als opslagtoegangssleutel
SECRET
,IDENTITY
wordt genegeerd. -
WITH IDENTITY
is niet vereist als de container in Azure Blob Storage is ingeschakeld voor anonieme toegang. ZieOPENROWSET BULK
Storage. - 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 SOURCE (Transact-SQL)voor 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 opmerkingen:
- Voor het laden van gegevens in Azure Synapse Analytics kan elke geldige waarde worden gebruikt.
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, ingeschakeld door passthrough-verificatie van Microsoft Entra, is ook mogelijk met een databasereferentie, zoals 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.
- Voor het laden van gegevens in Azure Synapse Analytics kan elke geldige waarde worden gebruikt.
Authentication | T-SQL | Supported | Notes |
---|---|---|---|
Shared Access Signature (SAS) | CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'SHARED ACCESS SIGNATURE', SECRET = 'secret'; |
SQL Server 2022, Azure SQL Managed Instance, Azure Synapse Analytics, Azure SQL Database | |
Managed Identity | CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'MANAGED IDENTITY'; |
Azure SQL Database, SQL Managed Identity | |
PassThrough-verificatie van Microsoft Entra via gebruikersidentiteit | CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'USER IDENTITY'; |
Azure SQL Database | Zie Microsoft Entra Connect in Azure Synapse: Pass Through-verificatie |
Basisverificatie van S3-toegangssleutel | CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'S3 ACCESS KEY', SECRET = '<accesskey>:<secretkey>'; |
SQL Server 2022 | |
Kerberos (Windows Active Directory of MIT KDC) of voor ODBC-gegevensbronnen |
CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = '<identity_name>', SECRET = '<secret>' ; |
Hadoop-only versies van SQL |
SECRET = 'secret'
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, moet u de voorloopsleutel '?' verwijderen. Anders worden uw inspanningen mogelijk geblokkeerd.
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 referenties voor databasebereik kunnen worden gemaakt. Een DMK moet worden versleuteld met een sterk wachtwoord. Azure SQL Database maakt een DMK met een sterk, willekeurig geselecteerd wachtwoord als onderdeel van het maken van de databasereferenties of als onderdeel van het maken van een servercontrole. Gebruikers kunnen de DMK niet maken in een logische master
database. Het hoofdsleutelwachtwoord is onbekend bij Microsoft en kan niet worden gedetecteerd na het maken. Daarom wordt het maken van een DMK aanbevolen voordat u een referentie met databasebereik maakt. Zie CREATE MASTER KEY (Transact-SQL)voor meer informatie.
Wanneer IDENTITY een Windows-gebruiker is, kan het geheim het wachtwoord zijn. Het geheim wordt versleuteld met behulp van de servicehoofdsleutel (SMK). Als de SMK opnieuw wordt gegenereerd, wordt het geheim opnieuw versleuteld met behulp van de nieuwe SMK.
Wanneer u machtigingen verleent voor shared access signatures (SAS) voor gebruik met een externe PolyBase-tabel, selecteert u zowel Container als Object als toegestane resourcetypen. Als dit niet is verleend, krijgt u mogelijk fout 16535 of 16561 wanneer u toegang probeert te krijgen tot de externe tabel.
Informatie over databasereferenties is zichtbaar in de sys.database_scoped_credentials catalogusweergave.
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 SOURCE (Transact-SQL) voor meer informatie.
Azure Synapse Analytics maakt gebruik van een databasereferentie voor toegang tot niet-openbare Azure Blob Storage met PolyBase. Zie CREATE EXTERNAL DATA SOURCE (Transact-SQL) voor meer informatie. Zie Externe tabellen gebruiken met Synapse SQL voor meer informatie over Azure Synapse-opslagverificatie.
SQL Database maakt gebruik van databasereferenties voor de elastische queryfunctie . Dit is de mogelijkheid om query's uit te voeren op meerdere database-shards.
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. Zie Tame explosieve groei met elastische databases voor meer informatie
BULK INSERT (Transact-SQL) en OPENROWSET (Transact-SQL) gebruiken databasereferenties voor toegang tot gegevens uit Azure Blob Storage. Zie Voorbeelden van bulktoegang tot gegevens in Azure Blob Storage voor meer informatie.
Gebruik databasereferenties met PolyBase- en gegevensvirtualisatie van Azure SQL Managed Instance functies.
BACKUP TO URL
GebruikRESTORE FROM URL
in plaats daarvan een referentie op serverniveau via CREATE CREDENTIAL (Transact-SQL).
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 AppCred
gemaakt. De referentie voor het databasebereik bevat de Windows-gebruiker Mary5
en een wachtwoord.
-- 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. Een databasereferentie maken voor een Shared Access Signature
In het volgende voorbeeld wordt een databasereferentie gemaakt die kan worden gebruikt voor het maken van een externe gegevensbron, die bulkbewerkingen kan uitvoeren, zoals BULK INSERT (Transact-SQL) en 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. 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 maakt gebruik van een Microsoft Entra-toepassing voor service-naar-serviceverificatie.
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.
-- 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>'
;