Aracılığıyla paylaş


sqlcmd'de Microsoft Entra Kimliği ile kimlik doğrulaması

Şunlar için geçerlidir:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalitik Platform Sistemi (PDW)Microsoft Fabric'te SQL veritabanı

sqlcmd, yüklediğiniz sürüme bağlı olarak çeşitli Microsoft Entra kimlik doğrulama modellerini destekler.

Note

Microsoft Entra ID, Azure Active Directory (Azure AD) içinyeni ad olsa da, mevcut ortamların kesintiye uğramasını önlemek için Azure AD yine de kullanıcı arabirimi alanları, bağlantı sağlayıcıları, hata kodları ve cmdlet'ler gibi sabit kodlanmış bazı öğelerde kalır. Bu makalede, iki ad birbirinin yerine kullanılabilir.

Sisteminizde hangi sqlcmd değişkeninin ve sürümünün yüklü olduğunu öğrenmek için bkz. Sqlcmd yardımcı programının yüklü sürümünü denetleme. sqlcmd'yi alma hakkında bilgi için bkz. sqlcmd yardımcı programını indirme ve yükleme.

sqlcmd (Go), azidentity paketini temel alan daha fazla Microsoft Entra kimlik doğrulama modelini destekler. Uygulama, go-sqlcmd sürücüsündebir Microsoft Entra bağlayıcısına dayanır.

Komut satırı bağımsız değişkenleri

Microsoft Entra kimlik doğrulamasını kullanmak için iki komut satırı anahtarından birini kullanabilirsiniz.

-G (çoğunlukla) sqlcmd (ODBC) içindeki kullanımıyla uyumludur. Bir kullanıcı adı ve parola sağlanırsa, Microsoft Entra parola kimlik doğrulaması kullanılarak kimlik doğrulaması yapılır. Bir kullanıcı adı sağlanırsa, bir web tarayıcısı görüntüleyebilen Microsoft Entra etkileşimli kimlik doğrulamasını kullanır. Kullanıcı adı veya parola sağlanmamışsa, çeşitli mekanizmalar aracılığıyla kimlik doğrulaması yapmaya çalışan bir DefaultAzureCredentialkullanır.

--authentication-method= aşağıdaki kimlik doğrulama türlerinden birini belirtmek için kullanılabilir.

ActiveDirectoryDefault

  • Bu modun kullandığı kimlik doğrulaması türlerine genel bakış için bkz. Varsayılan Azure Kimlik Bilgileri.
  • Veritabanı otomasyon betiklerinizin hem yerel geliştirme ortamlarında hem de Azure'daki bir üretim dağıtımında çalıştırılması amaçlanıyorsa bu yöntemi seçin. Geliştirme ortamınızda bir istemci sırrı veya Azure CLI oturum açma kullanabilirsiniz. Betiği geliştirme ortamından değiştirmeden, üretim dağıtımınızda yönetilen kimlik veya istemci sır bilgisi kullanabilirsiniz.
  • AZURE_TENANT_ID ortam yapılandırmasını denetlemeye başlaması ve kimlik doğrulaması için aşağıdaki ek ortam değişkenlerinden birini araması için ortam değişkenlerini AZURE_CLIENT_ID ve DefaultAzureCredential ayarlamak gerekir:
    • AZURE_CLIENT_SECRET ortam değişkeninin ayarlanması, DefaultAzureCredential'in ClientSecretCredential'yi seçmesini yapılandırır.
    • AZURE_CLIENT_CERTIFICATE_PATH ortam değişkeninin ayarlanması, DefaultAzureCredential ayarlanmadıysa ClientCertificateCredential'yi seçmek için AZURE_CLIENT_SECRET'i yapılandırır.
  • Ortam değişkeni AZURE_USERNAME ayarlandığında, DefaultAzureCredential ve UsernamePasswordCredential ayarlanmamışsa AZURE_CLIENT_SECRET seçmek için AZURE_CLIENT_CERTIFICATE_PATH yapılandırılır.

ActiveDirectoryIntegrated

Bu yöntem şu anda uygulanmamıştır ve ActiveDirectoryDefault'a geri dönmektedir.

ActiveDirectoryPassword

  • Bu yöntem, kullanıcı adı ve parola kullanarak kimlik doğrulaması yapar. MFA gerekliyse çalışmaz.

  • Her zamanki komut satırı anahtarlarını veya SQLCMD ortam değişkenlerini kullanarak kullanıcı adını ve parolayı sağlarsınız.

  • kullanıcının varsayılan kiracısını kullanmıyorsanız AZURE_TENANT_ID ortam değişkenini sunucunun kiracı kimliğine ayarlayın.

ActiveDirectoryInteractive

Bu yöntem, kullanıcının kimliğini doğrulamak için bir web tarayıcısı başlatır.

ActiveDirectoryManagedIdentity

** Sistem tarafından veya kullanıcı tarafından atanan yönetilen kimliğe sahip bir Azure VM'de sqlcmd (Go) çalıştırırken bu yöntemi kullanın. Kullanıcı tarafından atanan bir yönetilen kimlik kullanıyorsanız, kullanıcı adını yönetilen kimliğin İstemci Kimliği olarak ayarlayın. Sistem tarafından atanan bir kimlik kullanıyorsanız, kullanıcı adını boş bırakın.

Bu örnek, Hizmet Tarafından Atanan Yönetilen Kimlik (SAMI) kullanarak bağlanmayı gösterir:

sqlcmd -S testsrv.database.windows.net -d Target_DB_or_DW --authentication-method ActiveDirectoryManagedIdentity

Bu örnekte, kullanıcı tarafından atanan yönetilen kimliğin İstemci Kimliğini ekleyerek Kullanıcı Tarafından Atanan Yönetilen Kimlik (UAMI) ile nasıl bağlandığınız gösterilmektedir:

sqlcmd -S testsrv.database.windows.net -d Target_DB_or_DW --authentication-method ActiveDirectoryManagedIdentity -U <user-assigned-managed-identity-client-id>

ActiveDirectoryServicePrincipal

Bu yöntem, hizmet sorumlusu kimliği olarak sağlanan kullanıcı adını ve hizmet sorumlusu için istemci gizli anahtarı olarak parolayı doğrular. <application (client) ID>biçiminde bir kullanıcı adı sağlayın. SQLCMDPASSWORD değişkenini istemci sırrına ayarlayın. İstemci gizli dizisi yerine sertifika kullanıyorsanız, AZURE_CLIENT_CERTIFICATE_PATH ortam değişkenini sertifika dosyasının yoluna ayarlayın.

sqlcmd -S testsrv.database.windows.net -d Target_DB_or_DW --authentication-method ActiveDirectoryServicePrincipal -U <Application (client) ID> -P <client secret>

Microsoft Entra kimlik doğrulaması için ortam değişkenleri

Bazı Microsoft Entra kimlik doğrulama ayarları komut satırı girişlerine sahip değildir ve bazı ortam değişkenleri doğrudan azidentity (Go) tarafından kullanılan paketi tarafından kullanılır.

Bu ortam değişkenleri, Microsoft Entra kimlik doğrulamasının bazı yönlerini yapılandıracak ve varsayılan davranışları atlayacak şekilde ayarlanabilir. Daha önce listelenen değişkenlere ek olarak, aşağıdakiler sqlcmd (Go) özgü olup birden çok yönteme uygulanır.

SQLCMDCLIENTID

Bu ortam değişkenini, Azure SQL Veritabanı'nda kimlik doğrulaması yetkisi olan Microsoft Entra'da kayıtlı bir uygulamanın tanımlayıcısına ayarlayın. ActiveDirectoryInteractive ve ActiveDirectoryPassword yöntemleri için geçerlidir.