Aracılığıyla paylaş


VERITABANI KAPSAMLI KIMLIK KAYNAĞI OLUŞTUR (Transact-SQL)

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

Bir veritabanı kimlik bilgisi oluşturur. Veritabanı kimlik bilgileri bir sunucu oturum açma veya veritabanı kullanıcısı ile eşlenmez. Kimlik bilgisi, veritabanı erişim gerektiren bir işlem gerçekleştirdiği her durumda dış konuma erişmek için veritabanı tarafından kullanılır.

Transact-SQL söz dizimi kuralları

Syntax

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

Arguments

credential_name

Oluşturulan veritabanı kapsamlı kimlik bilgilerinin adını belirtir. credential_name sayı (#) işaretiyle başlayamaz. Sistem kimlik bilgileri ile ##başlar. en fazla credential_name uzunluğu 128 karakterdir.

KIMLIK = 'identity_name'

Sunucu dışına bağlanırken kullanılacak hesabın adını belirtir.

  • Paylaşılan anahtar kullanarak Azure Blob Depolama'dan veya Azure Data Lake Storage'dan bir dosyayı içeri aktarmak için kimlik adı olmalıdır SHARED ACCESS SIGNATURE. Paylaşılan erişim imzaları hakkında daha fazla bilgi için bkz . Paylaşılan Erişim İmzalarını (SAS) Kullanma. Yalnızca paylaşılan erişim imzası için kullanın IDENTITY = SHARED ACCESS SIGNATURE .
  • Yönetilen kimlik kullanarak Azure Blob Depolama'dan bir dosyayı içeri aktarmak için kimlik adı olmalıdır MANAGED IDENTITY.
  • Kerberos kullanırken (Windows Active Directory veya MIT KDC) bağımsız değişkeninde IDENTITY etki alanı adını kullanmayın. Yalnızca hesap adı olmalıdır.
  • BIR SQL Server örneğinde, olarak SECRETIDENTITY kullanılan bir Depolama Erişim Anahtarı ile veritabanı kapsamlı kimlik bilgileri oluşturuluyorsa yoksayılır.
  • WITH IDENTITY Azure Blob depolamadaki kapsayıcı anonim erişim için etkinleştirildiyse gerekli değildir. ile OPENROWSET BULKAzure Blob depolamayı sorgulama örneği için bkz. Azure Blob depolamada depolanan bir dosyadan tabloya aktarma.
  • SQL Server 2022 (16.x) ve sonraki sürümlerinde REST-API bağlayıcısı HADOOP'un yerini alır. Azure Blob Depolama ve Azure Data Lake 2. Nesil için desteklenen tek kimlik doğrulama yöntemi paylaşılan erişim imzasıdır. Daha fazla bilgi için bkz. CREATE EXTERNAL DATA SOURCE (Transact-SQL).
  • SQL Server 2019'da (15.x), Kerberos kimlik doğrulamasını destekleyen tek PolyBase dış veri kaynağı Hadoop'tır. Diğer tüm dış veri kaynakları (SQL Server, Oracle, Teradata, MongoDB, genel ODBC) yalnızca Temel Kimlik Doğrulamayı destekler.
  • Azure Synapse Analytics'teki SQL havuzları aşağıdaki notları içerir:
    • Azure Synapse Analytics'e veri yüklemek için için IDENTITYgeçerli herhangi bir değer kullanılabilir.
    • Azure Synapse Analytics sunucusuz SQL havuzunda, veritabanı kapsamlı kimlik bilgileri bir çalışma alanı yönetilen kimliği, hizmet asıl adı veya paylaşılan erişim imzası (SAS) belirteci belirtebilir. Microsoft Entra doğrudan kimlik doğrulaması tarafından etkinleştirilen bir kullanıcı kimliği üzerinden erişim, genel kullanıma açık depolamaya anonim erişim olduğu gibi veritabanı kapsamlı kimlik bilgileriyle de mümkündür. Daha fazla bilgi için bkz . Desteklenen depolama yetkilendirme türleri.
    • Azure Synapse Analytics ayrılmış SQL havuzunda, veritabanı kapsamlı kimlik bilgileri paylaşılan erişim imzası (SAS) belirteci, özel uygulama kimliği, çalışma alanı yönetilen kimliği veya depolama erişim anahtarı belirtebilir.
Authentication T-SQL Supported Notes
Paylaşılan Erişim İmzası (SAS) CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'SHARED ACCESS SIGNATURE', SECRET = 'secret'; SQL Server 2022 ve üzeri, Azure SQL Yönetilen Örneği, Azure Synapse Analytics, Azure SQL Veritabanı
Yönetilen Kimlik CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'MANAGED IDENTITY'; Azure SQL Veritabanı, Azure SQL Yönetilen Örneği, Azure Arc ile SQL Server 2025 Azure Arc'ı etkinleştirmek için Azure Arc tarafından etkinleştirilen SQL Server için Managed identity (SQL Server için yönetilen identite) bölümüne bakınız
Kullanıcı Kimliği aracılığıyla Microsoft Entra doğrudan kimlik doğrulaması CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'USER IDENTITY'; Azure SQL Database, SQL database in Microsoft Fabric * Azure Synapse'te bkz. Microsoft Entra Connect: Doğrudan Kimlik Doğrulaması
S3 Erişim Anahtarı Temel kimlik doğrulaması CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'S3 ACCESS KEY', SECRET = '<accesskey>:<secretkey>'; SQL Server 2022 ve sonraki sürümler
ODBC Veri kaynakları veya Kerberos (MIT KDC) CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = '<identity_name>', SECRET = '<secret>'; SQL Server 2019 ve sonraki sürümleri

* Microsoft Fabric'teki SQL veritabanında, veritabanı kapsamında bir kimlik bilgisi belirtilmemişse, kimlik doğrulama yöntemi varsayılan olarak 'KULLANICI KİMİLİ' olur ve bağlam olarak Entra ID kullanıcı girişini kullanır.

SECRET = 'gizli'

Giden kimlik doğrulaması için gereken gizli diziyi belirtir. SECRET azure blob depolamadan bir dosyayı içeri aktarmak için gereklidir. Azure Blob depolamadan Azure Synapse Analytics veya Paralel Veri Ambarı'na yüklemek için Gizli Anahtarın Azure Depolama Anahtarı olması gerekir.

Warning

SAS anahtar değeri bir soru işaretiyle (?) başlayabilir. SAS anahtarını kullandığınızda, baştaki ?öğesini kaldırın.

Remarks

Veritabanı kapsamlı kimlik bilgileri, SQL Server dışındaki bir kaynağa bağlanmak için gereken kimlik doğrulama bilgilerini içeren bir kayıttır. Çoğu kimlik bilgisi bir Windows kullanıcısı ve parolası içerir.

Veritabanı kapsamlı kimlik bilgileri içindeki hassas bilgileri korumak için bir veritabanı ana anahtarı (DMK) gerekir. DMK, veritabanı kapsamlı kimlik bilgilerindeki gizli diziyi şifreleyen bir simetrik anahtardır. Veritabanı kapsamlı kimlik bilgilerinin oluşturulabilmesi için önce veritabanının bir DMK'sı olmalıdır. DMK güçlü bir parolayla şifrelenmelidir. Azure SQL Veritabanı, veritabanı kapsamlı kimlik bilgilerini oluşturmanın bir parçası olarak veya sunucu denetimi oluşturmanın bir parçası olarak güçlü, rastgele seçilmiş bir parolaya sahip bir DMK oluşturur. Kullanıcılar mantıksal master veritabanında DMK oluşturamaz. Ana anahtar parolası Microsoft tarafından bilinmiyor ve oluşturulduktan sonra bulunamaz. Bu nedenle veritabanı kapsamlı kimlik bilgileri oluşturmadan önce DMK oluşturulması önerilir. Daha fazla bilgi için bkz. CREATE MASTER KEY (Transact-SQL).

KIMLIK bir Windows kullanıcısı olduğunda gizli dizi parola olabilir. Gizli dizi, hizmet ana anahtarı (SMK) kullanılarak şifrelenir. SMK yeniden oluşturulursa, gizli dizi yeni SMK kullanılarak yeniden şifrelenir.

PolyBase dış tablosuyla kullanılmak üzere paylaşılan erişim imzaları (SAS) için izinler verilirken, izin verilen kaynak türleri olarak hem Kapsayıcı hem de Nesne'yi seçin. Verilmezse, dış tabloya erişmeye çalışırken 16535 veya 16561 hatasını alabilirsiniz.

Veritabanı kapsamlı kimlik bilgileri hakkındaki bilgiler sys.database_scoped_credentials katalog görünümünde görünür.

Veritabanı kapsamlı kimlik bilgilerinin bazı uygulamaları şunlardır:

Permissions

Veritabanında CONTROL izni gerektirir.

Examples

A. Uygulamanız için veritabanı kapsamlı kimlik bilgileri oluşturma

Aşağıdaki örnek adlı AppCredveritabanı kapsamlı kimlik bilgilerini oluşturur. Veritabanı kapsamlı kimlik bilgileri Windows kullanıcısını Mary5 ve parolayı içerir.

-- 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. Paylaşılan erişim imzası için veritabanı kapsamlı kimlik bilgisi oluşturma

Aşağıdaki örnek, BULK INSERT (Transact-SQL) ve OPENROWSET (Transact-SQL) gibi toplu işlemler yapabilen bir dış veri kaynağı oluşturmak için kullanılabilecek veritabanı kapsamlı bir kimlik bilgisi oluşturur.

-- 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. Azure Data Lake Store'a PolyBase Bağlantısı için veritabanı kapsamlı kimlik bilgileri oluşturma

Aşağıdaki örnek, Azure Synapse Analytics'te PolyBase tarafından kullanılabilen bir dış veri kaynağı oluşturmak için kullanılabilecek veritabanı kapsamlı bir kimlik bilgisi oluşturur.

Azure Data Lake Store, hizmet-hizmet kimlik doğrulaması için bir Microsoft Entra uygulaması kullanır.

Bir Microsoft Entra uygulaması oluşturun ve veritabanı kapsamlı bir kimlik bilgisi oluşturmaya çalışmadan önce client_id, OAuth_2.0_Token_EndPoint ve Key belgeleyin.

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

D. Yönetilen Kimlik kullanarak veritabanı kapsamlı kimlik bilgisi oluşturma

Şunlar için geçerlidir: SQL Server 2025 (17.x)

SQL Server 2025 (17.x), Microsoft Entra yönetilen kimlikleri için destek sağlar. Azure Arc tarafından etkinleştirilen SQL Server ile yönetilen kimlik kullanma hakkında bilgi için bkz. Yönetilen Kimlik.

SP_CONFIGURE 'allow server scoped db credentials',1; 
RECONFIGURE;  

CREATE DATABASE SCOPED CREDENTIAL [managed_id] 
WITH IDENTITY = 'Managed Identity'; 

#. Microsoft Entra ID kullanarak veritabanı kapsamlı bir kimlik bilgisi oluşturun

Şunlar için geçerlidir:Azure SQL Database, SQL database in Microsoft Fabric

Azure SQL Veritabanı ve Microsoft Fabric'teki SQL veritabanında, harici bir veri kaynağını doğrulamak için kendi Entra ID girişinizi kullanmak mümkündür.

Microsoft Fabric'teki SQL veritabanında, veritabanı kapsamında bir kimlik bilgisi belirtilmediyse, kimlik doğrulama yöntemi varsayılan olarak USER IDENTITY Entra ID kullanıcı girişini bağlam olarak kullanır ve kullanır.

CREATE DATABASE SCOPED CREDENTIAL MyCredential
WITH IDENTITY = 'User Identity';