Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Azure SQL-Datenbank
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL-Datenbank in Microsoft Fabric
Erstellt Datenbank-Anmeldeinformationen. Datenbank-Anmeldeinformationen werden nicht einer Serveranmeldung oder einem Datenbankbenutzer zugeordnet. Stattdessen werden sie von der Datenbank verwendet, damit immer dann der Zugriff auf den externen Speicherort gestattet wird, wenn die Datenbank einen Vorgang ausführt und hierfür eine Zugriffsberechtigung benötigt.
Transact-SQL-Syntaxkonventionen
Syntax
CREATE DATABASE SCOPED CREDENTIAL credential_name
WITH IDENTITY = 'identity_name'
[ , SECRET = 'secret' ]
[ ; ]
Argumente
credential_name
Gibt den Namen für die datenbankweit gültigen Anmeldeinformationen an, die erstellt werden sollen.
credential_name kann nicht mit dem Nummernzeichen (#
) beginnen. Systemanmeldeinformationen beginnen mit ##
. Die maximale Länge von credential_name beträgt 128 Zeichen.
IDENTITY = 'identity_name'
Gibt den Namen des Kontos an, das beim Herstellen einer Verbindung außerhalb des Servers verwendet wird.
- Der Identitätsname muss
SHARED ACCESS SIGNATURE
sein, um eine Datei aus Azure Blob Storage oder Azure Data Lake Storage mithilfe eines freigegebenen Schlüssels zu importieren. Weitere Informationen zu SAS finden Sie unter Verwenden von Shared Access Signatures (SAS). Verwenden Sie für eine Shared Access Signature ausschließlichIDENTITY = SHARED ACCESS SIGNATURE
. - Der Identitätsname muss
MANAGED IDENTITY
lauten, um eine Datei aus Azure Blob Storage mithilfe einer verwalteten Identität zu importieren. - Verwenden Sie bei Verwendung von Kerberos (Windows Active Directory oder MIT KDC) nicht den Domänennamen im
IDENTITY
Argument. Sie sollten lediglich den Kontonamen verwenden. - Wenn in einer SQL Server-Instanz Anmeldeinformationen mit Datenbankbereich mit einem Speicherzugriffsschlüssel erstellt werden,
SECRET
derIDENTITY
als ", wird ignoriert. -
WITH IDENTITY
ist nicht erforderlich, wenn der Container im Azure Blob Storage für anonymen Zugriff aktiviert ist. Ein Beispiel zum Abfragen von Azure Blob Storage mitOPENROWSET BULK
, siehe Importieren in eine Tabelle aus einer Datei, die auf Azure Blob Storage gespeichert ist. - In SQL Server 2022 (16.x) und höheren Versionen ersetzt der REST-API Connector HADOOP. Für Azure Blob Storage und Azure Data Lake Gen 2 ist die einzige unterstützte Authentifizierungsmethode die Gemeinsame Zugriffssignatur. Weitere Informationen finden Sie unter CREATE EXTERNAL DATA SOURCE (Transact-SQL).
- In SQL Server 2019 (15.x) ist die einzige externe PolyBase-Datenquelle, die kerberos-Authentifizierung unterstützt, Hadoop. Alle anderen externen Datenquellen (SQL Server, Oracle, Teradata, MongoDB, generisches ODBC) unterstützen nur die Standardauthentifizierung.
- SQL-Pools in Azure Synapse Analytics enthalten die folgenden Hinweise:
- Zum Laden von Daten in Azure Synapse Analytics können alle gültigen Werte verwendet
IDENTITY
werden. - In einem serverlosen SQL-Pool von Azure Synapse Analytics können Anmeldeinformationen mit Datenbankbereich eine verwaltete Arbeitsbereichsidentität, einen Dienstprinzipalnamen oder ein SAS-Token (Shared Access Signature) angeben. Der Zugriff über eine Benutzeridentität, die durch die Pass-Through-Authentifizierung von Microsoft Entra aktiviert wird, ist auch mit einer datenbankbezogenen Anmeldeinformationen möglich, wie anonymer Zugriff auf öffentlich verfügbaren Speicher. Weitere Informationen finden Sie unter Unterstützte Speicherautorisierungstypen.
- In einem dedizierten SQL-Pool von Azure Synapse Analytics können Anmeldeinformationen mit Datenbankbereichssignatur (Shared Access Signature, SAS), benutzerdefinierte Anwendungsidentität, verwaltete Arbeitsbereichsidentität oder Speicherzugriffsschlüssel angeben.
- Zum Laden von Daten in Azure Synapse Analytics können alle gültigen Werte verwendet
Authentifizierung | T-SQL | Unterstützt | Hinweise |
---|---|---|---|
Signatur für gemeinsam genutzten Zugriff (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-Datenbank | |
Verwaltete Identität | CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'MANAGED IDENTITY'; |
Azure SQL-Datenbank, SQL Managed Identity | |
Microsoft Entra Pass-Through-Authentifizierung über Benutzeridentität | CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'USER IDENTITY'; |
Azure SQL-Datenbank | Informationen finden Sie in Azure Synapse unter Microsoft Entra Connect: Pass-Through-Authentifizierung |
S3 Access Key Basic Authentication | CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'S3 ACCESS KEY', SECRET = '<accesskey>:<secretkey>'; |
SQL Server 2022 | |
Kerberos (Windows Active Directory oder MIT KDC) oder für ODBC-Datenquellen |
CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = '<identity_name>', SECRET = '<secret>' ; |
Hadoop-only-Versionen von SQL |
SECRET = 'secret'
Gibt den geheimen Bereich an, der für die ausgehende Authentifizierung erforderlich ist.
SECRET
ist erforderlich, um eine Datei aus Azure Blob Storage zu importieren. Das Geheimnis muss der Azure-Speicherschlüssel sein, um aus Azure Blob Storage in Azure Synapse Analytics oder Parallel Data Warehouse zu laden.
Warnung
Der SAS-Schlüssel beginnt mit einem Fragezeichen (?). Wenn Sie den SAS-Schlüssel verwenden, müssen Sie das vorangestellte Fragezeichen entfernen. Andernfalls funktioniert der Vorgang nicht.
Bemerkungen
Datenbezogene Anmeldeinformationen sind in einem Datensatz gespeichert, in dem die Authentifizierungsinformationen enthalten sind, die zum Herstellen einer Verbindung mit einer Ressource außerhalb von SQL Server erforderlich sind. Die meisten Anmeldeinformationen schließen einen Windows-Benutzer und ein Kennwort ein.
Um die vertraulichen Informationen innerhalb der Anmeldeinformationen im Datenbankbereich zu schützen, ist ein Datenbankmasterschlüssel (DMK) erforderlich. Das DMK ist ein symmetrischer Schlüssel, der den geheimen Schlüssel in den Anmeldeinformationen des Datenbankbereichs verschlüsselt. Die Datenbank muss über ein DMK verfügen, bevor datenbankbezogene Anmeldeinformationen erstellt werden können. Ein DMK sollte mit einem sicheren Kennwort verschlüsselt werden. Azure SQL-Datenbank erstellt ein DMK mit einem starken, zufällig ausgewählten Kennwort als Teil der Erstellung der Anmeldeinformationen mit Datenbankbereich oder als Teil der Erstellung einer Serverüberwachung. Benutzer können das DMK nicht in einer logischen master
Datenbank erstellen. Das Hauptschlüsselkennwort ist microsoft unbekannt und kann nach der Erstellung nicht gefunden werden. Aus diesem Grund wird das Erstellen eines DMK vor dem Erstellen von Anmeldeinformationen mit Datenbankbereich empfohlen. Weitere Informationen finden Sie unter CREATE MASTER KEY (Transact-SQL).
Falls für IDENTITY ein Windows-Benutzer angegeben ist, kann der geheime Bereich das Kennwort enthalten. Der geheime Schlüssel wird mit dem Dienstmasterschlüssel (SMK) verschlüsselt. Wenn die SMK neu generiert wird, wird das Geheimnis mit dem neuen SMK erneut verschlüsselt.
Bei der Erteilung von Berechtigungen für eine Shared-Access-Signatur (SAS) zur Verwendung mit einer externen PolyBase-Tabelle wählen Sie sowohl Container als auch Objekt als zulässige Ressourcentypen aus. Wenn dies nicht gewährt wird, erhalten Sie möglicherweise fehler 16535 oder 16561, wenn Sie versuchen, auf die externe Tabelle zuzugreifen.
Informationen zu datenbankweit gültigen Anmeldeinformationen werden in der sys.database_scoped_credentials-Katalogsicht angezeigt.
Im Folgenden werden einige Anwendungen datenbankweit gültiger Anmeldeinformationen aufgezeigt:
SQL Server verwendet datenbankweit gültige Anmeldeinformationen, um auf den nicht öffentlichen Blobspeicher von Azure Blob Storage oder auf durch Kerberos gesicherte Hadoop-Cluster mit PolyBase zuzugreifen. Weitere Informationen finden Sie unter CREATE EXTERNAL DATA SOURCE (Transact-SQL).
Azure Synapse Analytics verwendet datenbankweit gültige Anmeldeinformationen, um mit PolyBase auf den nicht öffentlichen Blobspeicher von Azure Blob Storage zuzugreifen. Weitere Informationen finden Sie unter CREATE EXTERNAL DATA SOURCE (Transact-SQL). Weitere Informationen über die Azure Synapse-Speicherauthentifizierung finden Sie unter Verwendung externer Tabellen mit Synapse SQL.
SQL-Datenbank verwendet Datenbankanmeldeinformationen für das elastische Abfragefeature. Dadurch können Abfragen für mehrere Datenbank-Shards gestellt werden.
SQL-Datenbank verwendet datenbankweit gültige Anmeldeinformationen, um Dateien für erweiterte Ereignisse in den Blobspeicher von Azure Blob Storage zu schreiben.
SQL-Datenbank verwendet datenbankweit gültige Anmeldeinformationen für Pools für elastische Datenbanken. Weitere Informationen finden Sie unter Tame explosive growth with elastic databases (Verwenden von elastischen Datenbanken zum Abfangen von Lastspitzen).
BULK INSERT (Transact-SQL) und OPENROWSET (Transact-SQL) verwenden Datenbankanmeldeinformationen für den Zugriff auf Daten aus Azure Blob Storage. Weitere Informationen finden Sie unter Beispiele für Massenzugriff auf Daten in Azure Blob Storage.
Verwenden Sie datenbankbezogene Anmeldeinformationen mit PolyBase und Azure SQL verwaltete Instanz Datenvirtualisierungsfeatures.
BACKUP TO URL
Für undRESTORE FROM URL
, verwenden Sie stattdessen eine Anmeldeinformationen auf Serverebene über CREATE CREDENTIAL (Transact-SQL).
Berechtigungen
Erfordert die CONTROL-Berechtigung für die Datenbank.
Beispiele
Ein. Erstellen einer datenbankbezogenen Anmeldeinformationen für Ihre Anwendung
Im folgenden Beispiel werden datenbankweit gültige Anmeldeinformationen mit der Bezeichnung AppCred
erstellt. Die datenbankweit gültigen Anmeldeinformationen enthalten den Windows-Benutzer Mary5
und ein Kennwort.
-- 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. Erstellen einer datenbankbezogenen Anmeldeinformationen für eine freigegebene Zugriffssignatur
Im folgenden Beispiel wird eine datenbankbezogene Anmeldeinformationen erstellt, die zum Erstellen einer externen Datenquelle verwendet werden können, die Massenvorgänge ausführen kann, z. B. BULK INSERT (Transact-SQL) und 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. Erstellen einer datenbankbezogenen Anmeldeinformationen für PolyBase Connectivity mit Azure Data Lake Store
Im folgenden Beispiel werden datenbankweit gültige Anmeldeinformationen erstellt, die zum Erstellen einer externen Datenquelle verwendet werden können, die wiederum von PolyBase in Azure Synapse Analytics verwendet werden kann.
Azure Data Lake Store verwendet eine Microsoft Entra-Anwendung für die Dienstauthentifizierung.
Erstellen Sie eine Microsoft Entra-Anwendung , und dokumentieren Sie Ihre client_id, OAuth_2.0_Token_EndPoint und Key, bevor Sie versuchen, anmeldeinformationen mit Datenbankbereich zu erstellen.
-- 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>'
;