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 Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL-Datenbank in Microsoft Fabric
sqlcmd unterstützt eine Vielzahl von Azure Active Directory (Azure AD)-Authentifizierungsmodellen, je nachdem, welche Version Sie installiert haben.
Note
Während Microsoft Entra-ID der neue Name für Azure Active Directory (Azure AD) ist, bleibt Azure AD in einigen fest kodierten Elementen wie Benutzeroberfläche-Feldern, Verbindungsanbietern, Fehlercodes und Cmdlets erhalten, um Störungen in bestehenden Umgebungen zu vermeiden. In diesem Artikel sind die beiden Namen austauschbar.
Informationen dazu, welche Variante und Version von sqlcmd auf Ihrem System installiert ist, finden Sie unter Überprüfen der installierten Version des sqlcmd-Hilfsprogramms. Informationen zum Abrufen von sqlcmd finden Sie unter Herunterladen und Installieren des sqlcmd-Hilfsprogramms.
sqlcmd (Go) unterstützt mehr Azure AD-Authentifizierungsmodelle basierend auf dem Azidentity-Paket. Die Implementierung basiert auf einem Microsoft Entra-Connector im go-sqlcmd-Treiber.
Befehlszeilenargumente
Wenn Sie die Microsoft Entra-Authentifizierung verwenden möchten, können Sie eine von zwei Befehlszeileoptionen verwenden.
-G ist (hauptsächlich) mit der Verwendung in sqlcmd (ODBC) kompatibel. Wenn ein Benutzername und ein Kennwort angegeben werden, erfolgt die Authentifizierung über die Microsoft Entra-Kennwortauthentifizierung. Wenn ein Benutzername angegeben wird, verwendet er die interaktive Microsoft Entra-Authentifizierung, die einen Webbrowser anzeigen kann. Wenn kein Benutzername oder Passwort angegeben wird, wird eine DefaultAzureCredential verwendet, die versucht, sich durch verschiedene Mechanismen zu authentifizieren.
Mit --authentication-method= kann einer der folgenden Authentifizierungstypen angegeben werden.
ActiveDirectoryDefault
- Eine Übersicht über die Authentifizierungstypen, die dieser Modus verwendet, finden Sie unter Azure-Standardanmeldeinformationen.
- Wählen Sie diese Methode aus, wenn Ihre Datenbankautomatisierungsskripts sowohl in lokalen Entwicklungsumgebungen als auch in einer Produktionsbereitstellung in Azure ausgeführt werden sollen. In Ihrer Entwicklungsumgebung können Sie einen geheimen Clientschlüssel oder eine Azure CLI-Anmeldung verwenden. Ohne das Skript der Entwicklungsumgebung zu ändern, können Sie eine verwaltete Identität oder ein Client-Geheimnis in Ihrer Produktionsbereitstellung verwenden.
- Sie müssen die Umgebungsvariablen
AZURE_TENANT_IDundAZURE_CLIENT_IDfestlegen, damitDefaultAzureCredentialmit der Überprüfung der Umgebungskonfiguration beginnt und nach einer der folgenden zusätzlichen Umgebungsvariablen für die Authentifizierung sucht:- Wenn Sie die Umgebungsvariable
AZURE_CLIENT_SECRETfestlegen, wirdDefaultAzureCredentialso konfiguriert, dassClientSecretCredentialausgewählt wird. - Wenn Sie die Umgebungsvariable
AZURE_CLIENT_CERTIFICATE_PATHfestlegen, wirdDefaultAzureCredentialso konfiguriert, dassClientCertificateCredentialausgewählt wird, wennAZURE_CLIENT_SECRETnicht festgelegt ist.
- Wenn Sie die Umgebungsvariable
- Wenn Sie die Umgebungsvariable „AZURE_USERNAME“ festlegen, wird
DefaultAzureCredentialso konfiguriert, dassUsernamePasswordCredentialausgewählt wird, wennAZURE_CLIENT_SECRETundAZURE_CLIENT_CERTIFICATE_PATHnicht festgelegt sind.
ActiveDirectoryIntegrated
Diese Methode ist derzeit nicht implementiert, sodass ActiveDirectoryDefault verwendet wird.
ActiveDirectoryPassword
Bei dieser Methode erfolgt die Authentifizierung mit einem Benutzernamen und einem Kennwort. Die Methode funktioniert nicht, wenn MFA erforderlich ist.
Sie geben den Benutzernamen und das Kennwort mit den üblichen Befehlszeilenoptionen oder
SQLCMD-Umgebungsvariablen an.Legen Sie die Umgebungsvariable
AZURE_TENANT_IDauf die Mandanten-ID des Servers fest, wenn nicht der Standardmandant des Benutzers verwendet wird.
ActiveDirectoryInteractive
Bei dieser Methode wird Webbrowser zur Authentifizierung der Benutzer*innen gestartet.
ActiveDirectoryManagedIdentity
Verwenden Sie diese Methode, wenn Sie sqlcmd (Go) auf einer Azure-VM ausführen, die entweder über eine systemseitig oder benutzerseitig zugewiesene verwaltete Identität verfügt. Legen Sie den Benutzernamen bei Verwendung einer benutzerseitig zugewiesenen verwalteten Identität auf die Client-ID der verwalteten Identität fest. Lassen Sie den Benutzernamen bei Verwendung einer systemzugewiesenen Identität leer.
In diesem Beispiel wird gezeigt, wie Sie eine Verbindung über eine serviceseitig zugewiesene verwaltete Identität (Service Assigned Managed Identity, SAMI) herstellen:
sqlcmd -S testsrv.database.windows.net -d Target_DB_or_DW --authentication-method ActiveDirectoryManagedIdentity
In diesem Beispiel wird gezeigt, wie Sie eine Verbindung über eine benutzerseitig zugewiesene verwaltete Identität (User Assigned Managed Identity, UAMI) herstellen, indem Sie die Client-ID der benutzerseitig zugewiesenen verwalteten Identität hinzufügen:
sqlcmd -S testsrv.database.windows.net -d Target_DB_or_DW --authentication-method ActiveDirectoryManagedIdentity -U <user-assigned-managed-identity-client-id>
ActiveDirectoryServicePrincipal
Bei dieser Methode erfolgt die Authentifizierung mit dem angegebenen Benutzernamen als Dienstprinzipal-ID und dem Kennwort als geheimer Clientschlüssel für den Dienstprinzipal. Geben Sie einen Benutzernamen in der Form <application (client) ID>an. Legen Sie die SQLCMDPASSWORD-Variable auf den geheimen Clientschlüssel fest. Legen Sie die AZURE_CLIENT_CERTIFICATE_PATH-Umgebungsvariable auf den Pfad der Zertifikatdatei fest, wenn Sie ein Zertifikat anstelle eines geheimen Clientschlüssels verwenden.
sqlcmd -S testsrv.database.windows.net -d Target_DB_or_DW --authentication-method ActiveDirectoryServicePrincipal -U <Application (client) ID> -P <client secret>
Umgebungsvariablen für die Authentifizierung mit Microsoft Entra
Einige Einstellungen der Microsoft Entra-Authentifizierung haben keine Befehlszeileneingaben, und einige Umgebungsvariablen werden direkt von dem Paket genutzt, das von azidentity (Go) verwendet wird.
Diese Umgebungsvariablen können festgelegt werden, um einige Aspekte der Azure AD-Authentifizierung zu konfigurieren und Standardverhalten zu umgehen. Zusätzlich zu den zuvor aufgeführten Variablen sind die folgenden Variablen sqlcmd-spezifisch und gelten für mehrere Methoden.
SQLCMDCLIENTID
Legen Sie diese Umgebungsvariable auf den Bezeichner einer Anwendung fest, die in Microsoft Entra registriert und berechtigt ist, sich bei der Azure SQL-Datenbank zu authentifizieren. Gilt für ActiveDirectoryInteractive- und ActiveDirectoryPassword-Methoden.