Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik: SQL Server 2016 (13.x) és újabb verziók
Azure SQL Database
Felügyelt Azure SQL-példány
Létrehoz egy oszlop főkulcs metaadat-objektumát egy adatbázisban. Az oszlop főkulcs metaadatainak bejegyzése egy külső kulcstárolóban tárolt kulcsot jelöl. A kulcs védi (titkosítja) az oszloptitkosítási kulcsokat az Always Encrypted vagy az Always Encrypted biztonságos enklávékkal való használatakor. Több oszlop főkulcsa lehetővé teszi a kulcsok rendszeres elforgatását a biztonság növelése érdekében. Hozzon létre egy oszlop főkulcsát egy kulcstárban és annak kapcsolódó metaadat-objektumában az SQL Server Management Studióban vagy a PowerShellben az Object Explorer használatával. További részletekért lásd az Always Encrypted kulcskezelésének áttekintését.
Transact-SQL szintaxis konvenciók
Fontos
Az enklávé-kompatibilis kulcsok létrehozásához (ENCLAVE_COMPUTATIONS) az Always Encryptedt biztonságos enklávékkal kell létrehozni.
Szemantika
CREATE COLUMN MASTER KEY key_name
WITH (
KEY_STORE_PROVIDER_NAME = 'key_store_provider_name',
KEY_PATH = 'key_path'
[,ENCLAVE_COMPUTATIONS (SIGNATURE = signature)]
)
[;]
Arguments
key_name
Az oszlop főkulcsának neve az adatbázisban.
key_store_provider_name
Egy kulcstároló-szolgáltató nevét adja meg. A kulcstároló-szolgáltató egy ügyféloldali szoftverösszetevő, amely egy fő oszlopkulcsot tartalmazó kulcstárolót tartalmaz.
Az Always Encrypted használatával engedélyezett ügyfélillesztő:
- Kulcstároló-szolgáltató nevét használja
- A kulcstároló-szolgáltató keresése a kulcstároló-szolgáltatók illesztőprogram-beállításjegyzékében
Az illesztőprogram ezután a szolgáltatót használja az oszloptitkosítási kulcsok visszafejtéséhez. Az oszloptitkosítási kulcsokat egy oszlop főkulcsa védi. Az oszlop főkulcsa a mögöttes kulcstárolóban van tárolva. Ezután az oszloptitkosítási kulcs egyszerű szöveges értéke a titkosított adatbázisoszlopoknak megfelelő lekérdezési paraméterek titkosítására szolgál. Vagy az oszloptitkosítási kulcs visszafejti a titkosított oszlopokból származó lekérdezési eredményeket.
Az Always Encrypted-kompatibilis ügyfélillesztő-kódtárak közé tartoznak a népszerű kulcstárolók kulcstárolói.
Az elérhető szolgáltatók halmaza az ügyfélillesztő típusától és verziójától függ. Tekintse meg az Always Encrypted dokumentációját az egyes illesztőprogramok esetében: Alkalmazások fejlesztése az Always Encrypted használatával.
Az alábbi táblázat a rendszerszolgáltatók nevét mutatja be:
| Kulcstároló-szolgáltató neve | Mögöttes kulcstároló |
|---|---|
| "MSSQL_CERTIFICATE_STORE" | Windows tanúsítványtároló |
| "MSSQL_CSP_PROVIDER" | Egy tároló, például egy hardveres biztonsági modul (HSM), amely támogatja a Microsoft CryptoAPI-t. |
| "MSSQL_CNG_STORE" | Egy tároló, például egy hardveres biztonsági modul (HSM), amely támogatja a Cryptography API: Next Generation használatát. |
| "AZURE_KEY_VAULT" | Az Azure Key Vault használatának első lépései |
| "MSSQL_JAVA_KEYSTORE" | Java Key Store.} |
Az Always Encrypted-kompatibilis ügyfélillesztőben beállíthat egy egyéni kulcstároló-szolgáltatót, amely olyan oszlop főkulcsait tárolja, amelyekhez nincs beépített kulcstároló-szolgáltató. Az egyéni kulcstároló-szolgáltatók nevei nem kezdődhetnek a "MSSQL_" előtaggal, amely a Microsoft kulcstároló-szolgáltatók számára fenntartott előtag.
key_path
A kulcs elérési útja az oszlop főkulcstárolójában. A kulcs elérési útjának érvényesnek kell lennie minden olyan ügyfélalkalmazás esetében, amely várhatóan titkosítja vagy visszafejti az adatokat. Az adatok egy olyan oszlopban tárolódnak, amely (közvetve) a hivatkozott oszlop főkulcsa által védett. Az ügyfélalkalmazásnak hozzá kell férnie a kulcshoz. A kulcs elérési útjának formátuma a kulcstároló szolgáltatójára jellemző. Az alábbi lista az egyes Microsoft rendszerkulcstár-szolgáltatók kulcsútvonalainak formátumát ismerteti.
Szolgáltató neve: MSSQL_CERTIFICATE_STORE
Kulcs elérési útja formátuma:CertificateStoreName/CertificateStoreLocation/CertificateThumbprint
Where:
CertificateStoreLocation
A tanúsítványtároló helye, amelynek aktuális felhasználónak vagy helyi gépnek kell lennie. További információt a Helyi gép és az Aktuális felhasználói tanúsítványtárolók című témakörben talál.CertificateStore
Tanúsítványtároló neve, például "Saját".CertificateThumbprint
Tanúsítvány ujjlenyomata.Példák:
N'CurrentUser/My/BBF037EC4A133ADCA89FFAEC16CA5BFA8878FB94' N'LocalMachine/My/CA5BFA8878FB94BBF037EC4A133ADCA89FFAEC16'Szolgáltató neve: MSSQL_CSP_PROVIDER
Kulcs elérési útja formátuma:ProviderName/KeyIdentifier
Where:
ProviderName
A CAPI-t implementáló titkosítási szolgáltató (CSP) neve az oszlop főkulcstárolójához. Ha HSM-et használ kulcstárolóként, a szolgáltató nevének annak a CSP-nek a neve kell legyen, amelyet a HSM szállítóinak kell szolgáltatnia. A szolgáltatót telepíteni kell egy ügyfélszámítógépre.KeyIdentifier
Az oszlop főkulcsaként használt kulcs azonosítója a kulcstárolóban.Példák:
N'My HSM CSP Provider/AlwaysEncryptedKey1'Szolgáltató neve: MSSQL_CNG_STORE
Kulcs elérési útja formátuma:ProviderName/KeyIdentifier
Where:
ProviderName
A kulcstároló-szolgáltató (KSP) neve, amely implementálja a Cryptography: Next Generation (CNG) API-t az oszlop főkulcstárolójában. Ha kulcstárolóként HSM-et használ, a szolgáltató nevének annak a KSP-nek a neve kell legyen, amelyet a HSM-szállító szállít. A szolgáltatót telepíteni kell egy ügyfélszámítógépre.KeyIdentifier
Az oszlop főkulcsaként használt kulcs azonosítója a kulcstárolóban.Példák:
N'My HSM CNG Provider/AlwaysEncryptedKey1'Szolgáltató neve: AZURE_KEY_STORE
Kulcs elérési útja formátuma:KeyUrl
Where:
KeyUrl
A kulcs URL-címe az Azure Key Vaultban
ENCLAVE_COMPUTATIONS
Megadja, hogy az oszlop főkulcsa enklávé-kompatibilis-e. Az összes oszloptitkosítási kulcsot megoszthatja az oszlop főkulcsával titkosítva egy kiszolgálóoldali biztonságos enklávéval, és használhatja őket az enklávén belüli számításokhoz. További információ: Always Encrypted with secure enklávék.
aláírás
Bináris literál, amely a kulcs digitális aláírásának és az oszlop főkulcsával való ENCLAVE_COMPUTATIONS beállításának eredménye. Az aláírás tükrözi, hogy ENCLAVE_COMPUTATIONS van-e megadva. Az aláírás védi az aláírt értékeket a jogosulatlan felhasználók általi módosítástól. Az Always Encrypted-kompatibilis ügyfélillesztő ellenőrzi az aláírást, és hibát ad vissza az alkalmazásnak, ha az aláírás érvénytelen. Az aláírást ügyféloldali eszközökkel kell létrehozni. További információ: Always Encrypted with secure enklávék.
Megjegyzések
Hozzon létre egy oszloptitkosítási kulcs metaadat-bejegyzését, mielőtt létrehoz egy oszloptitkosítási kulcs metaadat-bejegyzést az adatbázisban, és mielőtt az adatbázis bármely oszlopa titkosítható lenne az Always Encrypted használatával. A metaadatok egyik oszlop főkulcs-bejegyzése nem tartalmazza a tényleges oszlop főkulcsát. Az oszlop főkulcsát egy külső oszlopkulcs-tárolóban kell tárolni (az SQL Serveren kívül). A kulcstároló szolgáltatójának nevének és a metaadatokban szereplő oszlop főkulcs-elérési útjának érvényesnek kell lennie egy ügyfélalkalmazáshoz. Az ügyfélalkalmazásnak az oszlop főkulcsával kell visszafejtenie az oszloptitkosítási kulcsot. Az oszloptitkosítási kulcs az oszlop főkulcsával van titkosítva. Az ügyfélalkalmazásnak titkosított oszlopokat is le kell kérdeznie.
Ajánlott olyan eszközöket használni, mint az SQL Server Management Studio (SSMS) vagy a PowerShell az oszlop főkulcsainak kezeléséhez. Az ilyen eszközök aláírásokat hoznak létre (ha az Always Encryptedt biztonságos enklávékkal használják), és automatikusan utasításokat adnak ki CREATE COLUMN MASTER KEY az oszloptitkosítási kulcs metaadat-objektumainak létrehozásához. Lásd : Always Encrypted-kulcsok kiépítése az SQL Server Management Studióval és Az Always Encrypted kulcsok kiosztása a PowerShell használatával.
Permissions
Az ALTER ANY COLUMN MASTER KEY engedélyre van szükség.
Példák
A. Oszlop főkulcsának létrehozása
Az alábbi példa egy oszlopmintakulcs metaadat-bejegyzését hozza létre egy oszlop főkulcsához. Az oszlop főkulcsa a Tanúsítványtárban található azon ügyfélalkalmazások számára, amelyek a MSSQL_CERTIFICATE_STORE szolgáltatót használják az oszlop főkulcsának eléréséhez:
CREATE COLUMN MASTER KEY MyCMK
WITH (
KEY_STORE_PROVIDER_NAME = N'MSSQL_CERTIFICATE_STORE',
KEY_PATH = 'Current User/Personal/f2260f28d909d21c642a3d8e0b45a830e79a1420'
);
Oszlopmintakulcs metaadat-bejegyzésének létrehozása az oszlop főkulcsához. Az MSSQL_CNG_STORE szolgáltatót használó ügyfélalkalmazások az oszlop főkulcsához férnek hozzá:
CREATE COLUMN MASTER KEY MyCMK
WITH (
KEY_STORE_PROVIDER_NAME = N'MSSQL_CNG_STORE',
KEY_PATH = N'My HSM CNG Provider/AlwaysEncryptedKey'
);
Oszlopmintakulcs metaadat-bejegyzésének létrehozása az oszlop főkulcsához. Az oszlop főkulcsa az Azure Key Vaultban van tárolva az AZURE_KEY_VAULT szolgáltatót használó ügyfélalkalmazások számára az oszlop főkulcsának eléréséhez.
CREATE COLUMN MASTER KEY MyCMK
WITH (
KEY_STORE_PROVIDER_NAME = N'AZURE_KEY_VAULT',
KEY_PATH = N'https://myvault.vault.azure.net:443/keys/
MyCMK/4c05f1a41b12488f9cba2ea964b6a700');
Oszlopmintakulcs metaadat-bejegyzésének létrehozása az oszlop főkulcsához. Az oszlop főkulcsa egy egyéni oszlop főkulcstárolójában van tárolva:
CREATE COLUMN MASTER KEY MyCMK
WITH (
KEY_STORE_PROVIDER_NAME = 'CUSTOM_KEY_STORE',
KEY_PATH = 'https://contoso.vault/sales_db_tce_key'
);
B. Enklávé-kompatibilis oszlop főkulcsának létrehozása
Az alábbi példa létrehoz egy oszlop főkulcs metaadat-bejegyzését egy enklávéval kompatibilis oszlop főkulcsához. Az enklávé-kompatibilis oszlop főkulcsa tanúsítványtárolóban van tárolva az olyan ügyfélalkalmazások számára, amelyek a MSSQL_CERTIFICATE_STORE szolgáltatót használják az oszlop főkulcsának eléréséhez:
CREATE COLUMN MASTER KEY MyCMK
WITH (
KEY_STORE_PROVIDER_NAME = N'MSSQL_CERTIFICATE_STORE',
KEY_PATH = 'Current User/Personal/f2260f28d909d21c642a3d8e0b45a830e79a1420'
ENCLAVE_COMPUTATIONS (SIGNATURE = 0xA80F5B123F5E092FFBD6014FC2226D792746468C901D9404938E9F5A0972F38DADBC9FCBA94D9E740F3339754991B6CE26543DEB0D094D8A2FFE8B43F0C7061A1FFF65E30FDDF39A1B954F5BA206AAC3260B0657232020542419990261D878318CC38EF4E853970ED69A8D4A306693B8659AAC1C4E4109DE5EB148FD0E1FDBBC32F002C1D8199D313227AD689279D8DEEF91064DF122C19C3767C463723AB663A6F8412AE17E745922C0E3A257EAEF215532588ACCBD440A03C7BC100A38BD0609A119E1EF7C5C6F1B086C68AB8873DBC6487B270340E868F9203661AFF0492CEC436ABF7C4713CE64E38CF66C794B55636BFA55E5B6554AF570CF73F1BE1DBD)
);
Hozzon létre egy oszlopmintakulcs metaadat-bejegyzését egy enklávéval kompatibilis oszlop főkulcsához. Az enklávé-kompatibilis oszlop főkulcsa az Azure Key Vaultban van tárolva az AZURE_KEY_VAULT szolgáltatót használó ügyfélalkalmazások számára az oszlop főkulcsának eléréséhez.
CREATE COLUMN MASTER KEY MyCMK
WITH (
KEY_STORE_PROVIDER_NAME = N'AZURE_KEY_VAULT',
KEY_PATH = N'https://myvault.vault.azure.net:443/keys/MyCMK/4c05f1a41b12488f9cba2ea964b6a700',
ENCLAVE_COMPUTATIONS(SIGNATURE = 0xA80F5B123F5E092FFBD6014FC2226D792746468C901D9404938E9F5A0972F38DADBC9FCBA94D9E740F3339754991B6CE26543DEB0D094D8A2FFE8B43F0C7061A1FFF65E30FDDF39A1B954F5BA206AAC3260B0657232020582413990261D878318CC38EF4E853970ED69A8D4A306693B8659AAC1C4E4109DE5EB148FD0E1FDBBC32F002C1D8199D313227AD689279D8DEEF91064DF122C19C3767C463723AB663A6F8412AE17E745922C0E3A257EAEF215532588ACCBD440A03C7BC100A38BD0609A119E1EF7C5C6F1B086C68AB8873DBC6487B270340E868F9203661AFF0492CEC436ABF7C4713CE64E38CF66C794B55636BFA55E5B6554AF570CF73F1BE1DBD)
);