CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL)CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL)

Anwendungsbereich:Applies to: JaSQL ServerSQL Server (alle unterstützten Versionen) yesSQL ServerSQL Server (all supported versions) JaAzure SQL-DatenbankAzure SQL DatabaseYesAzure SQL-DatenbankAzure SQL Database JaVerwaltete Azure SQL-InstanzAzure SQL Managed InstanceYesVerwaltete Azure SQL-InstanzAzure SQL Managed Instance JaAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics JaParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data WarehouseAnwendungsbereich:Applies to: JaSQL ServerSQL Server (alle unterstützten Versionen) yesSQL ServerSQL Server (all supported versions) JaAzure SQL-DatenbankAzure SQL DatabaseYesAzure SQL-DatenbankAzure SQL Database JaVerwaltete Azure SQL-InstanzAzure SQL Managed InstanceYesVerwaltete Azure SQL-InstanzAzure SQL Managed Instance JaAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics JaParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data Warehouse

Erstellt Datenbank-Anmeldeinformationen.Creates a database credential. Datenbank-Anmeldeinformationen werden nicht einer Serveranmeldung oder einem Datenbankbenutzer zugeordnet.A database credential is not mapped to a server login or database user. 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.The credential is used by the database to access to the external location anytime the database is performing an operation that requires access.

Symbol für Themenlink Transact-SQL-SyntaxkonventionenTopic link icon Transact-SQL Syntax Conventions

SyntaxSyntax

CREATE DATABASE SCOPED CREDENTIAL credential_name
WITH IDENTITY = 'identity_name'
    [ , SECRET = 'secret' ]

Hinweis

Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 oder früher finden Sie unter Dokumentation zu früheren Versionen.To view Transact-SQL syntax for SQL Server 2014 and earlier, see Previous versions documentation.

ArgumenteArguments

credential_name Gibt den Namen für die datenbankweit gültigen Anmeldeinformationen an, die erstellt werden sollen.credential_name Specifies the name of the database scoped credential being created. credential_name darf nicht mit dem Nummernzeichen (#) beginnen.credential_name cannot start with the number (#) sign. Systemanmeldeinformationen beginnen mit zwei Nummernzeichen (##).System credentials start with ##.

IDENTITY =' identity_name ' Gibt den Namen des Kontos an, das beim Herstellen einer Verbindung außerhalb des Servers verwendet wird.IDENTITY ='identity_name' Specifies the name of the account to be used when connecting outside the server. Der Identitätsname muss SHARED ACCESS SIGNATURE entsprechen, um eine Datei aus Azure Blob Storage mithilfe eines freigegebenen Schlüssels zu importieren.To import a file from Azure Blob storage using a shared key, the identity name must be SHARED ACCESS SIGNATURE. Jeder gültige Wert kann für die Identität verwendet werden, um Daten in SQL Data Warehouse zu laden.To load data into SQL DW, any valid value can be used for identity. Weitere Informationen zu SAS finden Sie unter Verwenden von Shared Access Signatures (SAS).For more information about shared access signatures, see Using Shared Access Signatures (SAS). Verwenden Sie nicht den Domänennamen im IDENTITY-Argument, wenn Sie Kerberos (Windows Active Directory oder MIT KDC) verwenden.When using Kerberos (Windows Active Directory or MIT KDC) do not use the domain name in the IDENTITY arguement. Sie sollten lediglich den Kontonamen verwenden.It should just be the account name.

Wichtig

Die SQL, Oracle, Teradata und MongoDB ODBC-Connectors für PolyBase unterstützen nur die einfache Authentifizierung, nicht die Kerberos-Authentifizierung.The SQL, Oracle, Teradata, and MongoDB ODBC Connectors for PolyBase only support basic authentication, not Kerberos authentication.

Hinweis

WITH IDENTITY ist nicht erforderlich, wenn der Container in Azure Blob Storage für anonymen Zugriff aktiviert ist.WITH IDENTITY is not required if the container in Azure Blob storage is enabled for anonymous access. Ein Beispiel für das Abfragen von Azure Blob Storage finden Sie unter Importieren in eine Tabelle aus einer Datei, die in Azure Blob Storage gespeichert ist.For an example querying Azure Blob storage, see Importing into a table from a file stored on Azure Blob storage.

SECRET =' secret ' Gibt den geheimen Schlüssel an, der für die ausgehende Authentifizierung erforderlich ist.SECRET ='secret' Specifies the secret required for outgoing authentication. SECRET ist erforderlich, um eine Datei aus Azure Blob Storage zu importieren.SECRET is required to import a file from Azure Blob storage. Das Geheimnis muss der Azure-Speicherschlüssel sein, um von Azure Blob Storage in SQL DW oder Parallel Data Warehouse zu laden.To load from Azure Blob storage into SQL DW or Parallel Data Warehouse, the Secret must be the Azure Storage Key.

Warnung

Der SAS-Schlüssel beginnt mit einem Fragezeichen (?).The SAS key value might begin with a '?' (question mark). Wenn Sie den SAS-Schlüssel verwenden, müssen Sie das vorangestellte Fragezeichen entfernen.When you use the SAS key, you must remove the leading '?'. Andernfalls funktioniert der Vorgang nicht.Otherwise your efforts might be blocked.

BemerkungenRemarks

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 ServerSQL Server erforderlich sind.A database scoped credential is a record that contains the authentication information that is required to connect to a resource outside SQL ServerSQL Server. Die meisten Anmeldeinformationen schließen einen Windows-Benutzer und ein Kennwort ein.Most credentials include a Windows user and password.

Vor dem Erstellen von datenbankweit gültigen Anmeldeinformationen muss die Datenbank über einen Hauptschlüssel zum Schützen der Anmeldeinformationen verfügen.Before creating a database scoped credential, the database must have a master key to protect the credential. Weitere Informationen finden Sie unter CREATE MASTER KEY (Transact-SQL).For more information, see CREATE MASTER KEY (Transact-SQL).

Falls für IDENTITY ein Windows-Benutzer angegeben ist, kann der geheime Bereich das Kennwort enthalten.When IDENTITY is a Windows user, the secret can be the password. Der geheime Bereich wird mithilfe des Diensthauptschlüssels verschlüsselt.The secret is encrypted using the service master key. Falls der Diensthauptschlüssel neu generiert wird, wird der geheime Bereich mithilfe des neuen Diensthauptschlüssels neu verschlüsselt.If the service master key is regenerated, the secret is re-encrypted using the new service master key.

Informationen zu datenbankweit gültigen Anmeldeinformationen werden in der sys.database_scoped_credentials-Katalogsicht angezeigt.Information about database scoped credentials is visible in the sys.database_scoped_credentials catalog view.

Im Folgenden werden einige Anwendungen datenbankweit gültiger Anmeldeinformationen aufgezeigt:Here are some applications of database scoped credentials:

BerechtigungenPermissions

Erfordert die CONTROL -Berechtigung für die Datenbank.Requires CONTROL permission on the database.

BeispieleExamples

A.A. Erstellen von datenbankweit gültigen Anmeldeinformationen für eine AnwendungCreating a database scoped credential for your application

Im folgenden Beispiel werden datenbankweit gültige Anmeldeinformationen mit der Bezeichnung AppCred erstellt.The following example creates the database scoped credential called AppCred. Die datenbankweit gültigen Anmeldeinformationen enthalten den Windows-Benutzer Mary5 und ein Kennwort.The database scoped credential contains the Windows user Mary5 and a password.

-- 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.B. Erstellen von datenbankweit gültigen Anmeldeinformationen für eine Shared Access SignatureCreating a database scoped credential for a shared access signature

Im folgenden Beispiel werden datenbankweit gültige Anmeldeinformationen erstellt, durch die sich eine externe Datenquelle erstellen lässt. Mit dieser können Massenvorgänge wie BULK INSERT und OPENROWSET ausgeführt werden.The following example creates a database scoped credential that can be used to create an external data source, which can do bulk operations, such as BULK INSERT and OPENROWSET. Shared Access Signatures können nicht mit PolyBase in SQL Server, APS oder SQL Data Warehouse verwendet werden.Shared Access Signatures cannot be used with PolyBase in SQL Server, APS or SQL DW.

-- 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.C. Erstellen von datenbankweit gültigen Anmeldeinformationen für PolyBase-Konnektivität mit Azure Data Lake StoreCreating a database scoped credential for PolyBase Connectivity to 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 (SQL Data Warehouse)Azure Synapse Analytics (SQL Data Warehouse) verwendet werden kann.The following example creates a database scoped credential that can be used to create an external data source, which can be used by PolyBase in Azure Synapse Analytics (SQL Data Warehouse)Azure Synapse Analytics (SQL Data Warehouse).

Azure Data Lake Store verwendet eine Azure Active Directory-Anwendung für Dienst-zu-Dienst-Authentifizierungen.Azure Data Lake Store uses an Azure Active Directory Application for Service to Service Authentication. Bevor Sie versuchen, datenbankweit gültige Anmeldeinformationen zu erstellen, ist es erforderlich, dass Sie eine AAD-Anwendung erstellen und sich die Werte für „client_id“, „OAuth_2.0_Token_EndPoint“ und „key“ notieren.Please create an AAD application and document your client_id, OAuth_2.0_Token_EndPoint, and Key before you try to create a database scoped credential.

-- 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>'
;

Weitere InformationenMore information