Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Yönetilen Örneği
Sunucu düzeyinde bir kimlik bilgisi oluşturur. Kimlik bilgisi, 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. Örneğin, veritabanı yedeğini bir konuma kaydetmek için SQL Server'ın bu konuma erişmek için özel kimlik bilgileri sağlaması gerekebilir. Daha fazla bilgi için bkz. Kimlik Bilgileri (Veritabanı Altyapısı).
Not
Kimlik bilgilerini veritabanı düzeyinde yapmak için create DATABASE SCOPED CREDENTIAL (Transact-SQL)CREATE CREDENTIAL
ile sunucu düzeyinde bir kimlik bilgisi oluşturun.
- Veritabanını daha taşınabilir hale getirmek için
CREATE DATABASE SCOPED CREDENTIAL
ile kapsamlı bir veritabanı kimlik bilgisi oluşturun. Veritabanı yeni bir sunucuya taşındığında, veritabanı kapsamlı kimlik bilgileri de bu sunucuyla birlikte taşınır. - SQL Veritabanı'nda veritabanı kapsamlı kimlik bilgilerini kullanın.
PolyBase ile veritabanı kapsamlı kimlik bilgilerini kullanın ve Azure SQL Yönetilen Örneği veri sanallaştırma özelliklerini.
Transact-SQL söz dizimi kuralları
Sözdizimi
CREATE CREDENTIAL credential_name
WITH IDENTITY = 'identity_name'
[ , SECRET = 'secret' ]
[ FOR CRYPTOGRAPHIC PROVIDER cryptographic_provider_name ]
Bağımsız değişken
credential_name
Oluşturulan kimlik bilgilerinin adını belirtir. credential_name sayı (#) işaretiyle başlayamaz. Sistem kimlik bilgileri ## ile başlar.
Önemli
Paylaşılan erişim imzası (SAS) kullanılırken, bu ad kapsayıcı yoluyla eşleşmeli, https ile başlamalıdır ve eğik çizgi içermemelidir. Bkz. örnek D.
Azure Blob Depolama veya S3 uyumlu platformlar gibi dış veri platformlarını kullanarak yedekleme/geri yükleme için kullanıldığında, aşağıdaki tabloda ortak yollar sağlanır:
Dış Veri Kaynağı | Konum yolu | Örnek |
---|---|---|
Azure Blob Depolama (V2) | https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername> |
Örnek D |
Azure Key Vault | <keyvaultname>.vault.azure.net |
Örnek H |
Azure Key Vault Yönetilen Donanım Güvenlik Modülü (HSM) | <akv-name>.managedhsm.azure.net |
Örnek H |
S3 uyumlu nesne depolama | - S3 uyumlu depolama: s3://<server_name>:<port>/ - AWS S3: s3://<bucket_name>.S3.<region>.amazonaws.com[:port]/<folder> veya s3://s3.<region>.amazonaws.com[:port]/<bucket_name>/<folder> |
Örnek F |
IDENTITY ='identity_name'
Sunucu dışına bağlanırken kullanılacak hesabın adını belirtir. Kimlik bilgileri Azure Key Vault'a erişmek için kullanıldığında, IDENTITY anahtar kasasının adıdır. Aşağıdaki C örneğine bakın. Kimlik bilgisi paylaşılan erişim imzası (SAS) kullandığında, IDENTITYSHARED ACCESS SIGNATURE. Aşağıdaki örnek D'ye bakın.
Önemli
Azure SQL Veritabanı yalnızca Azure Key Vault ve Paylaşılan Erişim İmzası kimliklerini destekler. Windows kullanıcı kimlikleri desteklenmez.
GIZLI dizi ='gizli dizi'
Giden kimlik doğrulaması için gereken gizli diziyi belirtir.
Kimlik bilgisi Azure Key Vault'a erişmek için kullanıldığında, SECRET bağımsız değişkeni hizmet sorumlusunun <istemci kimliği> (kısa çizgi olmadan) olarak biçimlendirilmeli ve aralarında boşluk bırakmadan birlikte geçirilen <gizli dizi>olmalıdır. Aşağıdaki C örneğine bakın. Kimlik bilgisi paylaşılan erişim imzası kullanırken, SECRET paylaşılan erişim imzası belirtecidir. Aşağıdaki örnek D'ye bakın. Azure kapsayıcısı üzerinde depolanmış erişim ilkesi ve paylaşılan erişim imzası oluşturma hakkında bilgi için bkz. 1. Ders: Azure kapsayıcıdepolanmış erişim ilkesi ve paylaşılan erişim imzası oluşturma.
ŞIFRELEME SAĞLAYıCı cryptographic_provider_name IÇIN
Kurumsal Anahtar Yönetimi Sağlayıcısı (EKM)adını belirtir. Anahtar Yönetimi hakkında daha fazla bilgi için bkz. Genişletilebilir Anahtar Yönetimi (EKM).
Açıklamalar
KIMLIK bir Windows kullanıcısı olduğunda gizli dizi parola olabilir. Gizli dizi, hizmet ana anahtarı kullanılarak şifrelenir. Hizmet ana anahtarı yeniden oluşturulursa, gizli dizi yeni hizmet ana anahtarı kullanılarak yeniden şifrelenir.
Bir kimlik bilgisi oluşturduktan sonra,
Kimlik bilgileri hakkındaki bilgiler sys.credentials katalog görünümünde görünür.
Sağlayıcı için oturum açma eşlenmiş kimlik bilgisi yoksa, SQL Server hizmet hesabına eşlenen kimlik bilgisi kullanılır.
Bir oturum açma bilgileri, ayırt edici sağlayıcılarla kullanıldığı sürece bu kimlik bilgileriyle eşlenmiş birden çok kimlik bilgilerine sahip olabilir. Oturum açma başına sağlayıcı başına yalnızca bir eşlenmiş kimlik bilgisi olmalıdır. Aynı kimlik bilgileri diğer oturum açma bilgileriyle eşlenebilir.
İzinler
HERHANGI bir KIMLIK iznini değiştirme
Örnekler
A. Windows Kimliği için Kimlik Bilgisi Oluşturma
Aşağıdaki örnek, AlterEgo
adlı kimlik bilgilerini oluşturur. Kimlik bilgisi Windows kullanıcı Mary5
ve bir parola içerir.
CREATE CREDENTIAL AlterEgo WITH IDENTITY = 'Mary5',
SECRET = '<EnterStrongPasswordHere>';
GO
B. EKM için Kimlik Bilgisi Oluşturma
Aşağıdaki örnek, EKM'nin Yönetim araçları aracılığıyla ekm modülünde User1OnEKM
adlı, temel hesap türü ve parola içeren önceden oluşturulmuş bir hesap kullanır. Sunucudaki sysadmin hesabı, EKM hesabına bağlanmak için kullanılan bir kimlik bilgisi oluşturur ve bunu User1
SQL Server hesabına atar:
CREATE CREDENTIAL CredentialForEKM
WITH IDENTITY='User1OnEKM', SECRET='<EnterStrongPasswordHere>'
FOR CRYPTOGRAPHIC PROVIDER MyEKMProvider;
GO
/* Modify the login to assign the cryptographic provider credential */
ALTER LOGIN User1
ADD CREDENTIAL CredentialForEKM;
C. Azure Key Vault Kullanarak EKM için Kimlik Bilgisi Oluşturma
Aşağıdaki örnek, Microsoft Azure Key Vaultiçin
Önemli
CREATE CREDENTIALIDENTITY bağımsız değişkeni anahtar kasası adını gerektirir. CREATE CREDENTIALSECRET bağımsız değişkeni, <İstemci Kimliği> (kısa çizgi olmadan) ve <Gizli Dizi> aralarında boşluk bırakmadan birlikte geçirilmesini gerektirir. Yönetilen kimlikler EKM ile desteklenir ve kimlik bilgileri yönetilen kimliklerle kullanılabilir. Örnek için bkz. Örnek H.
Aşağıdaki örnekte, İstemci Kimliği (00001111-aaaa-2222-bbbb-3333cccc4444
) kısa çizgilerden çıkarılır ve dize 11111111222233334444555555555555
olarak girilir ve Gizli DiziSECRET_DBEngine
dizesiyle temsil edilir.
USE master;
CREATE CREDENTIAL Azure_EKM_TDE_cred
WITH IDENTITY = 'ContosoKeyVault',
SECRET = '11111111222233334444555555555555SECRET_DBEngine'
FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM_Prov ;
Aşağıdaki örnek, İstemci Kimliği ve Gizli Dizi dizeleri için değişkenleri kullanarak aynı kimlik bilgilerini oluşturur ve daha sonra SECRET bağımsız değişkenini oluşturmak için birleştirilir. REPLACE işlevi, kısa çizgileri İstemci Kimliği'nden kaldırmak için kullanılır.
DECLARE @AuthClientId uniqueidentifier = '11111111-AAAA-BBBB-2222-CCCCCCCCCCCC';
DECLARE @AuthClientSecret varchar(200) = 'SECRET_DBEngine';
DECLARE @pwd varchar(max) = REPLACE(CONVERT(varchar(36), @AuthClientId) , '-', '') + @AuthClientSecret;
EXEC ('CREATE CREDENTIAL Azure_EKM_TDE_cred
WITH IDENTITY = ''ContosoKeyVault'', SECRET = ''' + @PWD + '''
FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM_Prov ;');
D. SAS Belirteci kullanarak kimlik bilgisi oluşturma
Aşağıdaki örnek, SAS belirteci kullanarak paylaşılan erişim imzası kimlik bilgileri oluşturur. Azure kapsayıcısı üzerinde depolanmış erişim ilkesi ve paylaşılan erişim imzası oluşturma ve ardından paylaşılan erişim imzasını kullanarak kimlik bilgisi oluşturma öğreticisi için bkz. Öğretici:SQL Server veritabanlarıyla Microsoft Azure Blob Depolama'yı kullanma.
Önemli
CREDENTIAL NAME bağımsız değişkeni, adın kapsayıcı yoluyla eşleşmesini, https ile başlamasını ve sondaki eğik çizgi içermesini gerektirir. IDENTITY bağımsız değişkeni, PAYLAŞıLAN ERIŞIM İMZAsıadını gerektirir. SECRET bağımsız değişkeni paylaşılan erişim imzası belirtecini gerektirir.
PAYLAŞıLAN ERIŞIM İMZAsı gizli anahtarı baştaki sahip olmamalıdır?.
USE master
CREATE CREDENTIAL [https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>] -- this name must match the container path, start with https and must not contain a trailing forward slash.
WITH IDENTITY='SHARED ACCESS SIGNATURE' -- this is a mandatory string and do not change it.
, SECRET = 'sharedaccesssignature' -- this is the shared access signature token
GO
E. Yönetilen Kimlik için kimlik bilgisi oluşturma
Aşağıdaki örnek, Azure SQL veya Azure Synapse hizmetinin yönetilen kimliğini temsil eden kimlik bilgilerini oluşturur. Parola ve gizli dizi bu durumda geçerli değildir.
CREATE CREDENTIAL ServiceIdentity WITH IDENTITY = 'Managed Identity';
GO
Azure VM'de SQL Server için yönetilen kimlikle kimlik bilgisi oluşturma örneği için bkz. Örnek G ve Örnek H. Sunucu düzeyinde yönetilen kimlik Linux için desteklenmez.
F. S3 uyumlu depolama alanına yedekleme/geri yükleme için kimlik bilgisi oluşturma
için geçerlidir: SQL Server 2022 (16.x) ve sonraki sürümler
Açık S3 uyumlu standart, depolama platformuna göre farklılık gösterebilecek depolama yolları ve ayrıntılar sağlar. Daha fazla bilgi için bkz. S3 uyumlu nesne depolamaIÇIN URL'ye SQL Server yedeklemesi
Çoğu S3 uyumlu depolama için, bu örnek bir sunucu düzeyinde kimlik bilgisi oluşturur ve BACKUP TO URL
gerçekleştirir.
USE [master];
CREATE CREDENTIAL [s3://<endpoint>:<port>/<bucket>]
WITH
IDENTITY = 'S3 Access Key',
SECRET = '<AccessKeyID>:<SecretKeyID>';
GO
BACKUP DATABASE [SQLTestDB]
TO URL = 's3://<endpoint>:<port>/<bucket>/SQLTestDB.bak'
WITH FORMAT /* overwrite any existing backup sets */
, STATS = 10
, COMPRESSION;
Ancak AWS S3 iki farklı URL standardını destekler.
-
S3://<BUCKET_NAME>.S3.<REGION>.AMAZONAWS.COM/<FOLDER>
(varsayılan) S3://S3.<REGION>.AMAZONAWS.COM/<BUCKET_NAME>/<FOLDER>
AWS S3 için kimlik bilgilerini başarıyla oluşturmaya yönelik birden çok yaklaşım vardır:
Kimlik bilgisi adında demet adını, yolu ve bölgeyi belirtin.
-- S3 bucket name: datavirtualizationsample -- S3 bucket region: us-west-2 -- S3 bucket folder: backup CREATE CREDENTIAL [s3://datavirtualizationsample.s3.us-west-2.amazonaws.com/backup] WITH IDENTITY = 'S3 Access Key' , SECRET = 'accesskey:secretkey'; GO BACKUP DATABASE [AdventureWorks2022] TO URL = 's3://datavirtualizationsample.s3.us-west-2.amazonaws.com/backup/AdventureWorks2022.bak' WITH COMPRESSION, FORMAT, MAXTRANSFERSIZE = 20971520; GO
Veya
CREATE CREDENTIAL [s3://s3.us-west-2.amazonaws.com/datavirtualizationsample/backup] WITH IDENTITY = 'S3 Access Key' , SECRET = 'accesskey:secretkey'; GO BACKUP DATABASE [AdventureWorks2022] TO URL = 's3://s3.us-west-2.amazonaws.com/datavirtualizationsample/backup/AdventureWorks2022.bak' WITH COMPRESSION, FORMAT, MAXTRANSFERSIZE = 20971520; GO
Alternatif olarak, kimlik bilgisi adında demet adını ve yolu sağlayın, ancak her
BACKUP
/RESTORE
komutu içinde bölgeyi parametreleştirin.BACKUP_OPTIONS
veRESTORE_OPTIONS
S3'e özgü bölge dizesini kullanın; örneğin,'{"s3": {"region":"us-west-2"}}'
.-- S3 bucket name: datavirtualizationsample -- S3 bucket region: us-west-2 -- S3 bucket folder: backup CREATE CREDENTIAL [s3://datavirtualizationsample.s3.amazonaws.com/backup] WITH IDENTITY = 'S3 Access Key' , SECRET = 'accesskey:secretkey'; GO BACKUP DATABASE [AdventureWorks2022] TO URL = 's3://datavirtualizationsample.s3.amazonaws.com/backup/AdventureWorks2022.bak' WITH BACKUP_OPTIONS = '{"s3": {"region":"us-west-2"}}' -- REGION AS PARAMETER) , COMPRESSION, FORMAT, MAXTRANSFERSIZE = 20971520; GO RESTORE DATABASE AdventureWorks2022_1 FROM URL = 's3://datavirtualizationsample.s3.amazonaws.com/backup/AdventureWorks2022.bak' WITH MOVE 'AdventureWorks2022' TO 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\AdventureWorks2022_1.mdf' , MOVE 'AdventureWorks2022_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\AdventureWorks2022_1.ldf' , STATS = 10, RECOVERY , REPLACE, RESTORE_OPTIONS = '{"s3": {"region":"us-west-2"}}'; -- REGION AS PARAMETER) GO
G. Yönetilen kimlik kullanarak Azure Blob Depolama'ya erişmek için kimlik bilgisi oluşturma
SQL Server 2022 CU17'den başlayarak, Azure Blob depolama alanındaki Azure VM veritabanlarında SQL Server'ı yedeklemek ve geri yüklemek için SQL Server kimlik bilgileriyle yönetilen kimlikleri kullanabilirsiniz. Daha fazla bilgi için bkz. Yönetilen kimlikleri kullanarak URL'ye yedekleme ve geri yükleme.
BACKUP
ve RESTORE
işlemleriyle kullanılacak yönetilen kimliğe sahip bir kimlik bilgisi oluşturmak için aşağıdaki örneği kullanın:
CREATE CREDENTIAL [https://<mystorageaccountname>.blob.core.windows.net/<container-name>]
WITH IDENTITY = 'Managed Identity';
İzleme bayrağı 4675 yönetilen kimlikle oluşturulan kimlik bilgilerini denetlemek için kullanılabilir.
CREATE CREDENTIAL
deyimi izleme bayrağı 4675 etkinleştirilmeden yürütüldüyse, sunucu için birincil yönetilen kimlik ayarlanmadıysa hata iletisi gönderilmez. Bu senaryoyla ilgili sorunları gidermek için, izleme bayrağı etkinleştirildikten sonra kimlik bilgilerinin silinmesi ve yeniden oluşturulması gerekir.
H. Azure Key Vault ile Genişletilebilir Anahtar Yönetimi için yönetilen kimlik kimlik bilgileri oluşturma
SQL Server 2022 CU17'den başlayarak, Azure Key Vault (AKV) ile Genişletilebilir Anahtar Yönetimi (EKM) için Azure VM'lerinde SQL Server'da yönetilen kimlikleri de kullanabilirsiniz. Daha fazla bilgi için bkz. Azure Key Vault ile Genişletilebilir Anahtar Yönetimi için Yönetilen Kimlik desteği .
AKV ile EKM ile kullanılacak bir yönetilen kimlik kimlik bilgisi oluşturmak için aşağıdaki örneği kullanın:
CREATE CREDENTIAL [<akv-name>.vault.azure.net]
WITH IDENTITY = 'Managed Identity'
FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM_Prov
Mesela:
CREATE CREDENTIAL [contoso.vault.azure.net] -- for Azure Key Vault
WITH IDENTITY = 'Managed Identity'
FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM_Prov
CREATE CREDENTIAL [contoso.managedhsm.azure.net] -- for Azure Key Vault Managed HSM
WITH IDENTITY = 'Managed Identity'
FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM_Prov
İzleme bayrağı 4675 yönetilen kimlikle oluşturulan kimlik bilgilerini denetlemek için kullanılabilir.
CREATE CREDENTIAL
deyimi izleme bayrağı 4675 etkinleştirilmeden yürütüldüyse, sunucu için birincil yönetilen kimlik ayarlanmadıysa hata iletisi gönderilmez. Bu senaryoyla ilgili sorunları gidermek için, izleme bayrağı etkinleştirildikten sonra kimlik bilgilerinin silinmesi ve yeniden oluşturulması gerekir.
İlgili içerik
- Kimlik Bilgileri (Veritabanı Altyapısı)
- ALTER CREDENTIAL (Transact-SQL)
- DROP CREDENTIAL (Transact-SQL)
- CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL)
- CREATE LOGIN (Transact-SQL)
- ALTER LOGIN (Transact-SQL)
- sys.credentials (Transact-SQL)
- 2. Ders: Paylaşılan erişim imzası kullanarak SQL Server kimlik bilgisi oluşturma
- Paylaşılan Erişim İmzalarını