Megosztás a következőn keresztül:


HITELESÍTŐ ADATOK LÉTREHOZÁSA (Transact-SQL)

A következőkre vonatkozik:SQL ServerFelügyelt Azure SQL-példány

Kiszolgálószintű hitelesítő adatokat hoz létre. A hitelesítő adatok olyan rekordok, amelyek az SQL Serveren kívüli erőforráshoz való csatlakozáshoz szükséges hitelesítési adatokat tartalmazzák. A legtöbb hitelesítő adat windowsos felhasználót és jelszót tartalmaz. Előfordulhat például, hogy az adatbázis biztonsági mentésének bizonyos helyre történő mentése esetén az SQL Servernek speciális hitelesítő adatokat kell megadnia a hely eléréséhez. További információ: hitelesítő adatok (adatbázismotor).

Jegyzet

A hitelesítő adatok adatbázisszintű használatához CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL). Hozzon létre egy kiszolgálószintű hitelesítő adatokat CREATE CREDENTIAL, ha ugyanazt a hitelesítő adatot több adatbázishoz kell használnia a kiszolgálón.

  • Hozzon létre egy adatbázis-hatókörű hitelesítő adatot CREATE DATABASE SCOPED CREDENTIAL az adatbázis hordozhatóbbá tétele érdekében. Amikor egy adatbázist új kiszolgálóra helyez át, az adatbázis hatókörébe tartozó hitelesítő adatok vele együtt lesznek áthelyezve.
  • Adatbázis-hatókörű hitelesítő adatok használata az SQL Database-ben.
  • Adatbázis-hatókörű hitelesítő adatok használata PolyBase és Felügyelt Azure SQL-példány adatvirtualizálási funkcióival.

Transact-SQL szintaxis konvenciói

Szintaxis

CREATE CREDENTIAL credential_name
WITH IDENTITY = 'identity_name'
    [ , SECRET = 'secret' ]
        [ FOR CRYPTOGRAPHIC PROVIDER cryptographic_provider_name ]

Érvek

credential_name

Megadja a létrehozott hitelesítő adatok nevét. credential_name nem kezdődhet a szám (#) jellel. A rendszer hitelesítő adatai a ##-tal kezdődnek.

Fontos

Közös hozzáférésű jogosultságkód (SAS) használatakor ennek a névnek meg kell egyeznie a tároló elérési útjával, https-vel kell kezdődnie, és nem tartalmazhat perjelet. Lásd D példa.

Ha külső adatplatformok , például Azure Blob Storage vagy S3-kompatibilis platformok használatával történő biztonsági mentésre/visszaállításra használják, az alábbi táblázat általános elérési utakat biztosít:

Külső adatforrás Hely elérési útja Példa
Azure Blob Storage (V2) https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername> D példa
Azure Key Vault <keyvaultname>.vault.azure.net H példa
Azure Key Vault felügyelt hardveres biztonsági modul (HSM) <akv-name>.managedhsm.azure.net H példa
S3-kompatibilis objektumtároló - S3-kompatibilis tároló: s3://<server_name>:<port>/
- AWS S3: s3://<bucket_name>.S3.<region>.amazonaws.com[:port]/<folder>
vagy s3://s3.<region>.amazonaws.com[:port]/<bucket_name>/<folder>
F példa

IDENTITÁS = 'identity_name'

Megadja a kiszolgálón kívüli csatlakozáskor használni kívánt fiók nevét. Amikor a hitelesítő adatokat az Azure Key Vault eléréséhez használják, a IDENTITY a kulcstartó neve. Lásd az alábbi C példát. Ha a hitelesítő adatok közös hozzáférésű jogosultságkódot (SAS) használnak, a IDENTITÁSKÖZÖS HOZZÁFÉRÉSŰ JOGOSULTSÁGKÓD. Lásd az alábbi D példát.

Fontos

Az Azure SQL Database csak az Azure Key Vaultot és a közös hozzáférésű jogosultságkód-identitásokat támogatja. A Windows felhasználói azonosítók nem támogatottak.

TITKOS ='titkos'

Megadja a kimenő hitelesítéshez szükséges titkos kulcsot.

Amikor a hitelesítő adatokat az Azure Key Vault eléréséhez használják, a TITKOS argumentumot a szolgáltatásnév <ügyfélazonosítójának> (kötőjelek nélkül) és <titkos>kell formáznia, és szóköz nélkül kell egymás között átadni. Lásd az alábbi C példát. Ha a hitelesítő adatok közös hozzáférésű jogosultságkódot használnak, a TITKOS a közös hozzáférésű jogosultságkód jogkivonata. Lásd az alábbi D példát. A tárolt hozzáférési szabályzatok és az Azure-tárolók közös hozzáférésű jogosultságkódjának létrehozásáról az 1. lecke: Tárolt hozzáférési szabályzat és közös hozzáférésű jogosultságkód létrehozása egy Azure-tárolón.

TITKOSÍTÁSI SZOLGÁLTATÓ CRYPTOGRAPHIC_PROVIDER_NAME

Egy vállalati kulcskezelő szolgáltató (EKM)nevét adja meg. További információ a kulcskezelésről: Bővíthető kulcskezelés (EKM).

Megjegyzések

Ha az IDENTITY Windows-felhasználó, a titkos kód lehet a jelszó. A titkos kód a szolgáltatás főkulcsával (SMK) van titkosítva. Ha az SMK újra létrejön, a titkos kód újra lesz titkosítva az új SMK használatával.

A hitelesítő adatok létrehozása után leképezheti egy SQL Server-bejelentkezésre CREATE LOGIN vagy ALTER LOGINhasználatával. Az SQL Server-bejelentkezések csak egy hitelesítő adatra képezhetők le, de egyetlen hitelesítő adat több SQL Server-bejelentkezéshez is leképezhető. További információ: hitelesítő adatok (adatbázismotor). A kiszolgálószintű hitelesítő adatok csak bejelentkezésre képezhetők le, adatbázis-felhasználóra nem.

A hitelesítő adatokra vonatkozó információk a sys.credentials katalógusnézetben láthatók.

Ha nincs bejelentkezési hitelesítő adat a szolgáltatóhoz, a rendszer az SQL Server szolgáltatásfiókhoz leképezett hitelesítő adatokat használja.

Egy bejelentkezéshez több hitelesítő információt is csatolhatnak, amennyiben azokat különböző szolgáltatókkal használják. Bejelentkezésenként csak egy leképezett hitelesítő adat lehet szolgáltatónként. Ugyanez a hitelesítő adat leképezhető más bejelentkezésekre is.

Engedélyek

HITELESÍTŐ ADATOK MÓDOSÍTÁSA engedély szükséges.

Példák

Egy. Hitelesítő adatok létrehozása Windows-identitáshoz

Az alábbi példa létrehozza a AlterEgonevű hitelesítő adatot. A hitelesítő adatok tartalmazzák a Windows-felhasználó Mary5 és egy jelszót.

CREATE CREDENTIAL AlterEgo WITH IDENTITY = 'Mary5',
    SECRET = '<EnterStrongPasswordHere>';
GO

B. Hitelesítő adatok létrehozása AZ EKM-hez

Az alábbi példa egy korábban létrehozott User1OnEKM nevű fiókot használ egy EKM-modulon az EKM felügyeleti eszközein keresztül, alapszintű fióktípussal és jelszóval. A kiszolgálón található sysadmin fiók létrehoz egy hitelesítő adatot, amely az EKM-fiókhoz való csatlakozáshoz használatos, és hozzárendeli az User1 SQL Server-fiókhoz:

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. Hitelesítő adatok létrehozása AZ EKM-hez az Azure Key Vault használatával

Az alábbi példa létrehoz egy SQL Server-hitelesítő adatokat az adatbázismotor számára, amelyet az Azure Key Vault elérésekor a Microsoft Azure Key Vault SQL Server-összekötőjével. Az SQL Server-összekötő használatának teljes példáját az Bővíthető kulcskezelés az Azure Key Vault (SQL Server) használatávalcímű témakörben talál.

Fontos

A CREATE CREDENTIALIDENTITY argumentumához a kulcstartó neve szükséges. A CREATE CREDENTIALSECRET argumentumához a <ügyfélazonosító> (kötőjelek nélkül) és <titkos> kell egymás között szóköz nélkül átadni. A felügyelt identitások EKM-ben támogatottak, a hitelesítő adatok pedig felügyelt identitásokkal használhatók. Példa: H példa.

Az alábbi példában a ügyfélazonosító () le lesz vonva a kötőjelekből, és sztringként adja meg, a titkos pedig a sztring jelöli.

USE master;
CREATE CREDENTIAL Azure_EKM_TDE_cred
    WITH IDENTITY = 'ContosoKeyVault',
    SECRET = '11111111222233334444555555555555SECRET_DBEngine'
    FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM_Prov ;

Az alábbi példa ugyanazt a hitelesítő adatot hozza létre az ügyfélazonosító és Titkos sztringek változóinak használatával, amelyeket a rendszer összefűz a TITKOS argumentum létrehozásához. A REPLACE függvénnyel eltávolíthatja a kötőjeleket az ügyfélazonosítóból.

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. Hitelesítő adatok létrehozása SAS-jogkivonat használatával

Az: SQL Server 2014 (12.x) jelenlegi és felügyelt Azure SQL-példányon keresztül vonatkozik.

Az alábbi példa SAS-jogkivonat használatával hoz létre közös hozzáférésű jogosultságkód hitelesítő adatokat. A tárolt hozzáférési szabályzat és a közös hozzáférésű jogosultságkód Azure-tárolón való létrehozásáról, majd a hitelesítő adatok közös hozzáférésű jogosultságkóddal történő létrehozásáról szóló oktatóanyagért tekintse meg oktatóanyagot: A Microsoft Azure Blob Storage használata SQL Server-adatbázisokkal.

Fontos

A HITELESÍTŐ ADATOK NEVE argumentumhoz a névnek meg kell egyeznie a tároló elérési útjával, https-vel kell kezdődnie, és nem kell záró perjelet tartalmaznia. A IDENTITY argumentumhoz meg kell adni a KÖZÖS HOZZÁFÉRÉSŰ JOGOSULTSÁGKÓDnevet. A SECRET argumentumhoz közös hozzáférésű jogosultságkód-jogkivonat szükséges.

A SHARED ACCESS SIGNATURE titknak nem kellene lennie a vezető ?.

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. Hitelesítő adatok létrehozása felügyelt identitáshoz

Az alábbi példa létrehozza az Azure SQL vagy az Azure Synapse szolgáltatás felügyelt identitását képviselő hitelesítő adatokat. Ebben az esetben a jelszó és a titkos kód nem alkalmazható.

CREATE CREDENTIAL ServiceIdentity WITH IDENTITY = 'Managed Identity';
GO

Az Azure-beli virtuális gépeken futó SQL Server felügyelt identitásával rendelkező hitelesítő adatok létrehozására példa: G példa és H példa. Linux esetén a kiszolgálószintű felügyelt identitás nem támogatott.

F. Hitelesítő adatok létrehozása S3-kompatibilis tárolóba történő biztonsági mentéshez/visszaállításhoz

Alkalmazható: SQL Server 2025 (17.x) és későbbi verziók Azure Arc-on, SQL Server 2022 (16.x) és későbbi verziókban (on-premises és SQL Server Azure VM-en Azure Arc nélkül), valamint Azure SQL Managed Instance

Az open S3-kompatibilis szabvány tárolóútvonalakat és részleteket biztosít, amelyek a tárolóplatformtól függően eltérhetnek. További információ: SQL Server biztonsági mentése URL-címre S3-kompatibilis objektumtároló.

A legtöbb S3-kompatibilis tároló esetében ez a példa létrehoz egy kiszolgálószintű hitelesítő adatokat, és végrehajt egy BACKUP TO URL.

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;

Az AWS S3 azonban két különböző URL-szabványt támogat.

  • S3://<BUCKET_NAME>.S3.<REGION>.AMAZONAWS.COM/<FOLDER> (alapértelmezett)
  • S3://S3.<REGION>.AMAZONAWS.COM/<BUCKET_NAME>/<FOLDER>

Az AWS S3 hitelesítő adatainak létrehozásának több módszere is van:

  • Adja meg a gyűjtő nevét és elérési útját és régióját a hitelesítő adatok nevében.

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

    Vagy

    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
    
  • Vagy adja meg a gyűjtő nevét és elérési útját a hitelesítő adatok nevében, de paraméterezze a régiót az egyes BACKUP/RESTORE parancsokban. Használja az S3-specifikus régiós sztringet a BACKUP_OPTIONS és RESTORE_OPTIONS, például '{"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
    

Jegyzet

A felügyelt Azure SQL-példány csak RESTORE az S3-tárfiókokból származó műveleteket támogatja. BACKUP művelet jelenleg nem támogatott.

G. Felügyelt identitás hitelesítő adatainak létrehozása és használata az Azure Blob Storage eléréséhez

Alkalmazható: SQL Server 2025 (17.x) és későbbi verziók Azure Arc-on, SQL Server 2022 (16.x) és későbbi verziókban (on-premises és SQL Server Azure VM-en Azure Arc nélkül), valamint Azure SQL Managed Instance

Az SQL Server hitelesítő adataival rendelkező felügyelt identitásokkal biztonsági másolatot készíthet az SQL Server-adatbázisokról az Azure Blob Storage-ból, és visszaállíthatja azokat. További információ az Azure-beli virtuális gépen futó SQL Serverről: Biztonsági mentés és URL-cím visszaállítása felügyelt identitásokkal.

Ha egy felügyelt identitással rendelkező hitelesítő adatot szeretne létrehozni a BACKUP és RESTORE műveletekhez, használja az alábbi példát:

CREATE CREDENTIAL [https://<mystorageaccountname>.blob.core.windows.net/<container-name>] 
    WITH IDENTITY = 'Managed Identity';

nyomkövetési jelző 4675-ös a felügyelt identitással létrehozott hitelesítő adatok ellenőrzésére használható. Ha a CREATE CREDENTIAL utasítás a 4675-ös nyomkövetési jelző engedélyezése nélkül lett végrehajtva, a rendszer nem ad ki hibaüzenetet, ha az elsődleges felügyelt identitás nincs beállítva a kiszolgálóhoz. A hiba elhárításához a hitelesítő adatokat törölni kell, majd újra létre kell hozni, amint engedélyezve van a nyomkövetési jelző.

H. Felügyelt identitás hitelesítő adatainak létrehozása bővíthető kulcskezeléshez az Azure Key Vaulttal

Az SQL Server 2022 CU17-től kezdve felügyelt identitásokat is használhat az SQL Serveren az Azure-beli virtuális gépeken az Extensible Key Management (EKM) és az Azure Key Vault (AKV) használatával. További információ: Felügyelt identitás támogatása az Azure Key Vaultbővíthető kulcskezeléséhez.

Ha az EKM-hez az AKV-val használandó felügyelt identitás hitelesítő adatait szeretné létrehozni, használja az alábbi példát:

CREATE CREDENTIAL [<akv-name>.vault.azure.net] 
    WITH IDENTITY = 'Managed Identity'
    FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM_Prov

Például:

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

nyomkövetési jelző 4675-ös a felügyelt identitással létrehozott hitelesítő adatok ellenőrzésére használható. Ha a CREATE CREDENTIAL utasítás a 4675-ös nyomkövetési jelző engedélyezése nélkül lett végrehajtva, a rendszer nem ad ki hibaüzenetet, ha az elsődleges felügyelt identitás nincs beállítva a kiszolgálóhoz. A hiba elhárításához a hitelesítő adatokat törölni kell, majd újra létre kell hozni, amint engedélyezve van a nyomkövetési jelző.