Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy do:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
System Platform Analitycznych (PDW)
Baza danych SQL w Microsoft Fabric
sqlcmd obsługuje różne modele uwierzytelniania Microsoft Entra, w zależności od zainstalowanej wersji.
Note
Chociaż Microsoft Entra ID to nowa nazwa usługi Azure Active Directory (Azure AD), aby zapobiec zakłócaniu działania istniejących środowisk, usługa Azure AD nadal pozostaje w niektórych twardo zakodowanych elementach, takich jak pola interfejsu użytkownika, dostawcy usług połączeń, kody błędów i cmdlet. W tym artykule dwie nazwy są wymienne.
Aby dowiedzieć się, który wariant i wersja narzędzia sqlcmd jest zainstalowany w systemie, zobacz Sprawdzanie zainstalowanej wersji narzędzia sqlcmd. Aby uzyskać informacje na temat pobierania narzędzia sqlcmd, zobacz Pobieranie i instalowanie narzędzia sqlcmd.
sqlcmd (Go) obsługuje więcej modeli uwierzytelniania Microsoft Entra, bazując na pakiecie azidentity. Implementacja opiera się na łączniku Microsoft Entra w sterowniku go-sqlcmd .
Argumenty wiersza polecenia
Aby użyć uwierzytelniania Microsoft Entra, możesz wykorzystać jeden z dwóch przełączników wiersza polecenia.
-G jest (głównie) zgodny z jego użyciem w sqlcmd (ODBC). Jeśli podano nazwę użytkownika i hasło, uwierzytelnia się przy użyciu uwierzytelniania za pomocą hasła firmy Microsoft Entra. Jeśli podano nazwę użytkownika, używa interakcyjnego uwierzytelniania firmy Microsoft Entra, które może wyświetlać przeglądarkę internetową. Jeśli nie podano nazwy użytkownika lub hasła, używa DefaultAzureCredential, która próbuje uwierzytelnić się za pomocą różnych mechanizmów.
--authentication-method= można użyć do określenia jednego z następujących typów uwierzytelniania.
ActiveDirectoryDefault
- Aby zapoznać się z omówieniem typów uwierzytelniania używanych w tym trybie, zobacz Domyślne poświadczenia platformy Azure.
- Wybierz tę metodę, jeśli skrypty automatyzacji bazy danych mają być uruchamiane zarówno w lokalnych środowiskach deweloperskich, jak i we wdrożeniu produkcyjnym na platformie Azure. W środowisku deweloperskim możesz użyć wpisu tajnego klienta lub logowania za pomocą Azure CLI. Bez zmiany skryptu ze środowiska deweloperskiego można użyć tożsamości zarządzanej lub klucza tajnego klienta we wdrożeniu produkcyjnym.
- Ustawienie zmiennych środowiskowych
AZURE_TENANT_IDiAZURE_CLIENT_IDjest niezbędne, abyDefaultAzureCredentialrozpocząć sprawdzanie konfiguracji środowiska i wyszukać jedną z następujących dodatkowych zmiennych środowiskowych w celu uwierzytelnienia:- Ustawienie zmiennej środowiskowej
AZURE_CLIENT_SECRETkonfigurujeDefaultAzureCredentialdo wybraniaClientSecretCredential. - Ustawienie zmiennej środowiskowej
AZURE_CLIENT_CERTIFICATE_PATHkonfigurujeDefaultAzureCredentialdo wybieraniaClientCertificateCredential, jeśliAZURE_CLIENT_SECRETnie jest ustawiona.
- Ustawienie zmiennej środowiskowej
- Ustawienie zmiennej środowiskowej AZURE_USERNAME konfiguruje
DefaultAzureCredential, aby wybraćUsernamePasswordCredential, jeśliAZURE_CLIENT_SECRETiAZURE_CLIENT_CERTIFICATE_PATHnie są ustawione.
ActiveDirectoryIntegrated
Ta metoda nie jest obecnie zaimplementowana i wraca do ActiveDirectoryDefault.
ActiveDirectoryPassword
Ta metoda uwierzytelnia się przy użyciu nazwy użytkownika i hasła. Nie działa, jeśli wymagane jest uwierzytelnianie wieloskładnikowe.
Podaj nazwę użytkownika i hasło za pomocą zwykłych przełączników wiersza poleceń lub zmiennych środowiskowych
SQLCMD.Ustaw zmienną środowiskową
AZURE_TENANT_IDna identyfikator tenanta serwera, jeśli nie używasz domyślnej dzierżawy przypisanej użytkownikowi.
ActiveDirectoryInteractive
Ta metoda uruchamia przeglądarkę internetową w celu uwierzytelnienia użytkownika.
ActiveDirectoryManagedIdentity
Użyj tej metody podczas uruchamiania sqlcmd (Go) na maszynie wirtualnej platformy Azure, która ma tożsamość zarządzaną przypisaną przez system lub przypisaną przez użytkownika. W przypadku korzystania z zarządzanej tożsamości przypisanej przez użytkownika, ustaw nazwę użytkownika na identyfikator klienta tej tożsamości zarządzanej. W przypadku korzystania z tożsamości przypisanej przez system pozostaw pustą nazwę użytkownika.
W tym przykładzie pokazano, jak nawiązać połączenie przy użyciu tożsamości zarządzanej przypisanej przez usługę (SAMI):
sqlcmd -S testsrv.database.windows.net -d Target_DB_or_DW --authentication-method ActiveDirectoryManagedIdentity
W tym przykładzie pokazano, jak połączyć się z tożsamością zarządzaną przypisaną przez użytkownika, dodając identyfikator klienta tej tożsamości.
sqlcmd -S testsrv.database.windows.net -d Target_DB_or_DW --authentication-method ActiveDirectoryManagedIdentity -U <user-assigned-managed-identity-client-id>
ActiveDirectoryServicePrincipal
Ta metoda uwierzytelnia podaną nazwę użytkownika jako identyfikator jednostki usługi i hasło jako klucz tajny klienta dla jednostki usługi. Podaj nazwę użytkownika w formularzu <application (client) ID>. Ustaw zmienną SQLCMDPASSWORD na klucz tajny klienta. Jeśli używasz certyfikatu zamiast klucza tajnego klienta, ustaw AZURE_CLIENT_CERTIFICATE_PATH zmienną środowiskową na ścieżkę pliku certyfikatu.
sqlcmd -S testsrv.database.windows.net -d Target_DB_or_DW --authentication-method ActiveDirectoryServicePrincipal -U <Application (client) ID> -P <client secret>
Zmienne środowiskowe do uwierzytelniania Microsoft Entra
Niektóre ustawienia uwierzytelniania Entra firmy Microsoft nie mają wejść z wiersza poleceń, a niektóre zmienne środowiskowe są bezpośrednio używane przez pakiet azidentity wykorzystywany przez sqlcmd (Go).
Te zmienne środowiskowe można ustawić tak, aby skonfigurować niektóre aspekty uwierzytelniania firmy Microsoft Entra i obejść domyślne zachowania. Oprócz wcześniej wymienionych zmiennych, poniższe dotyczą sqlcmd (Go) i mają zastosowanie w wielu metodach.
SQLCMDCLIENTID
Ustaw tę zmienną środowiskową na identyfikator aplikacji zarejestrowanej w usłudze Microsoft Entra, która jest autoryzowana do uwierzytelniania w usłudze Azure SQL Database. Dotyczy metod ActiveDirectoryInteractive i ActiveDirectoryPassword.