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. Bir veritabanı kimlik bilgisi sunucu girişi veya veritabanı kullanıcısına eşlenmez. Veritabanı, erişim gerektiren bir işlemi gerçekleştirdiğinde harici kaynağa erişmek için kimlik bilgilerini kullanı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 (Windows Active Directory veya MIT KDC) kullanırken argümanda alan adını IDENTITY kullanmayın. Yalnızca hesap adı olmalıdır.

  • Bir SQL Server örneğinde, veritabanı kapsamlı bir kimlik bilgisi oluşturursanız ve Depolama Erişim Anahtarı kullanılır SECRET, IDENTITY bu da göz ardı edilir.

  • WITH IDENTITY Azure Blob depolamadaki konteyner anonim erişim için etkinleştirilmişse zorunlu 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.

  • 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 IDENTITYherhangi bir geçerli değeri kullanabilirsiniz.
    • 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 geçiş kimlik doğrulaması ile Kullanıcı girişiyle mümkün olan kullanıcı kimliği ile erişim, veritabanı kapsamlı kimlik bilgileriyle ve kamuya açık depolamaya anonim erişim 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 1 Azure Synapse'te, Microsoft Entra geçişli kimlik doğrulama ile kullanıcı girişine bakınız.
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

1 Microsoft Fabric'teki SQL veritabanında, veritabanı kapsamında bir kimlik doğrulaması belirtmezseniz, kimlik doğrulama yöntemi varsayılan olarak 'KULLANICI Kimliği' olur ve bağlam olarak Microsoft Entra ID kullanıcı hesabını 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 bilgileri oluşturabilmeniz için veritabanında bir DMK olmalıdır. DMK'yı güçlü bir şifreyle şifreleyin. Azure SQL Veritabanı, veritabanı kapsamlı kimlik doğrulaması oluşturmanın bir parçası olarak veya sunucu denetimi oluşturmanın bir parçası olarak güçlü, rastgele seçilmiş bir şifreyle bir DMK oluşturur.

Kullanıcılar mantıksal master veritabanında DMK oluşturamaz. DMK şifresi Microsoft tarafından bilinmemektedir ve oluşturulduktan sonra keşfedilemez. Veritabanı kapsamlı bir kimlik bilgisi oluşturmadan önce bir DMK oluşturun. Daha fazla bilgi için bkz. CREATE MASTER KEY .

Windows kullanıcısı olduğunda IDENTITY , sır şifre olabilir. Sır, servis ana anahtarı (SMK) ile şifrelenir. SMK'yı yeniden oluşturursanız, sır yeni SMK ile yeniden şifrelenir.

PolyBase harici bir tablo ile kullanım için paylaşılan erişim imzası (SAS) izinleri verilirken, izin verilen kaynak türleri olarak hem Konteyner hem deNesne seçin. Bu izinleri vermezseniz, harici tabloya erişmeye çalışırken 16535 veya 16561 hatası alabilirsiniz.

Veritabanı kapsamlı kimlik bilgileriyle ilgili bilgi için sys.database_scoped_credentials katalog görünümüne bakınız.

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

  • SQL Server, genel olmayan Azure Blob Depolama'ya veya PolyBase ile Kerberos güvenli Hadoop kümelerine erişmek için veritabanı kapsamlı bir kimlik bilgisi kullanır. Daha fazla bilgi için bkz. CREATE EXTERNAL DATA SOURCE.

  • Azure Synapse Analytics, PolyBase ile genel olmayan Azure Blob Depolama'ya erişmek için veritabanı kapsamlı bir kimlik bilgisi kullanır. Daha fazla bilgi için bkz. CREATE EXTERNAL DATA SOURCE. Azure Synapse depolama kimlik doğrulaması hakkında daha fazla bilgi için bkz. Synapse SQL ile dış tabloları kullanma.

  • SQL Database, esnek sorgu özelliği için veritabanı kapsamlı kimlik bilgilerini kullanır; bu özellik, birden fazla veritabanı parçası arasında sorgulara izin verir.

  • SQL Veritabanı, Azure Blob Depolama'ya genişletilmiş olay dosyaları yazmak için veritabanı kapsamlı kimlik bilgilerini kullanır.

  • SQL Veritabanı, elastik havuzlar için veritabanı kapsamlı kimlik bilgilerini kullanır. Daha fazla bilgi için, Azure SQL Database'de birden fazla veritabanını yönetmeye ve ölçeklendirmeye yardımcı olur Elastik havuzlar sayfasına bakabilirsiniz

  • BULK INSERT ve OPENROWSET , Azure Blob Storage'dan verilere erişmek için veritabanı kapsamlı kimlik bilgilerini kullanır. Daha fazla bilgi için Azure Blob Storage'da toplu veri erişimi örneklerine bakınız.

  • PolyBase ile veritabanı kapsamlı kimlik bilgilerini kullanın ve Azure SQL Yönetilen Örneği veri sanallaştırma özelliklerini .

  • ve RESTORE FROM URLiçinBACKUP TO URL, bunun yerine CREATE CREDENTIAL ile sunucu düzeyinde bir kimlik bilgisi kullanın.

  • Veritabanı kapsamlı kimlik bilgilerini HARICI MODEL OLUŞTUR ile kullanın

Permissions

Veritabanı üzerinde CONTROL izni gereklidir.

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.

Eğer zaten var değilse bir DMK oluşturun. Boş parola kullanmayın. Güçlü bir parola kullanın.

CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>';

Veritabanı kapsamlı bir kimlik hattı oluşturun:

CREATE DATABASE SCOPED CREDENTIAL AppCred
WITH IDENTITY = 'Mary5',
     SECRET = '<password>';

B. Paylaşılan erişim imzası için veritabanı kapsamlı kimlik bilgisi oluşturma

Aşağıdaki örnek, harici bir veri kaynağı oluşturmak için kullanabileceğiniz veritabanı kapsamlı bir kimlik bilgisi oluşturur. Bu kimlik bilgisi, BULK INSERT ve OPENROWSET BULK gibi toplu işlemleri yapabilir.

Eğer zaten var değilse bir DMK oluşturun. Boş parola kullanmayın. Güçlü bir parola kullanın.

CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>';

Veritabanı kapsamlı bir kimlik bilgisi oluşturun. <key> değerini uygun değerle değiştirin.

CREATE DATABASE SCOPED CREDENTIAL MyCredentials
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
     SECRET = '<key>';

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, servis-hizmet doğrulama için Microsoft Entra uygulamasını 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.

Eğer zaten var değilse bir DMK oluşturun. Boş parola kullanmayın. Güçlü bir parola kullanın.

CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>';

Veritabanı kapsamlı bir kimlik bilgisi oluşturun. <key> değerini uygun değerle değiştirin.

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

Geçerlidir: SQL Server 2025 (17.x) ve sonraki sürümler

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 bir kimlik nasıl kullanılacağına dair bilgi için Azure Arc tarafından etkinleştirilen SQL Server için yönetilen kimlik sayfasına bakınız.

EXECUTE sp_configure 'allow server scoped db credentials', 1;
RECONFIGURE;
GO

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

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

Uygulanır:Azure SQL Database, SQL database in Microsoft Fabric

Azure SQL Database ve Microsoft Fabric'teki SQL veritabanında, kendi Microsoft Entra ID hesabınızı kullanarak harici bir veri kaynağını doğrulamak için kullanılabilir.

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

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