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


sp_control_dbmasterkey_password (Transact-SQL)

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

Hozzáad vagy elvet egy hitelesítő adatot, amely tartalmazza az adatbázis főkulcsának (DMK) megnyitásához szükséges jelszót.

Transact-SQL szintaxis konvenciói

Szintaxis

sp_control_dbmasterkey_password @db_name = 'db_name'
    , @password = 'password'
    , @action = { N'add' | N'drop' }

Érvek

Fontos

A kiterjesztett tárolt eljárások argumentumait a Szintaxis szakaszban leírt sorrendben kell megadni. Ha a paraméterek sorrenden kívül vannak beírva, hibaüzenet jelenik meg.

@db_name = N'db_name'

Megadja a hitelesítő adatokhoz társított adatbázis nevét. Nem lehet rendszeradatbázis. @db_namenvarchar.

@password = N'jelszó'

Megadja a DMK jelszavát. @passwordnvarchar.

@action = { N'add' | N'drop' }

A hitelesítőadat-tárolóban lévő megadott adatbázis hitelesítő adatainak műveletét adja meg. A @action átadott érték nvarchar.

Akció Leírás
add Megadja, hogy a megadott adatbázis hitelesítő adatai hozzá legyenek adva a hitelesítőadat-tárolóhoz. A hitelesítő adatok tartalmazzák a DMK jelszavát.
drop Megadja, hogy a megadott adatbázis hitelesítő adatai törlődnek a hitelesítőadat-tárolóból.

Megjegyzések

Ha az SQL Servernek DMK-ra van szüksége egy kulcs visszafejtéséhez vagy titkosításához, az SQL Server megpróbálja visszafejteni a DMK-t a példány szolgáltatás-főkulcsával (SMK). Ha a visszafejtés sikertelen, az SQL Server megkeresi a hitelesítőadat-tárolóban azokat a hitelesítő adatokat, amelyek családazonosítója megegyezik azzal az adatbázissal, amelyhez kulcsra van szüksége. Az SQL Server ezután megpróbálja visszafejteni a DMK-t minden egyező hitelesítő adattal, amíg a visszafejtés sikeres nem lesz, vagy nincs több hitelesítő adat.

Figyelmeztet

Ne hozzon létre főkulcs-hitelesítő adatokat olyan adatbázisokhoz, amelyeknek elérhetetlennek kell lenniük sa és más magas jogosultságú kiszolgálónevek számára. Konfigurálhat egy adatbázist, hogy a kulcshierarchiáját ne tudja visszafejteni az SMK. Ez a beállítás a titkosított információkat tartalmazó adatbázisok részletes védelmeként támogatott, amelyek nem lehetnek elérhetők sa vagy más magas jogosultságú kiszolgálónevek számára. Az ilyen adatbázisok hitelesítő adatainak létrehozása eltávolítja ezt a mélységi védelmet, lehetővé téve sa és más magas jogosultságú kiszolgálónevek számára az adatbázis visszafejtését.

A sp_control_dbmasterkey_password használatával létrehozott hitelesítő adatok láthatók a sys.master_key_passwords katalógusnézetben. A DMK-k számára létrehozott hitelesítő adatok nevei a következő formátummal rendelkeznek: ##DBMKEY_<database_family_guid>_<random_password_guid>##. A jelszó hitelesítőadat-titkos kódként van tárolva. A hitelesítőadat-tárolóhoz hozzáadott jelszavaknak egyező soruk van a sys.credentials.

A sp_control_dbmasterkey_password nem használható hitelesítő adatok létrehozásához a következő rendszeradatbázisokhoz: master, model, msdbvagy tempdb.

sp_control_dbmasterkey_password nem ellenőrzi, hogy a jelszó meg tudja-e nyitni a megadott adatbázis DMK-ját.

Ha a megadott adatbázis hitelesítő adataiban már tárolt jelszót ad meg, sp_control_dbmasterkey_password sikertelen lesz.

A különböző kiszolgálópéldányokból származó két adatbázis ugyanazt a családi GUID-t használhatja. Ha ez történik, az adatbázisok ugyanazokkal a DMK-rekordokkal osztoznak a hitelesítőadat-tárolóban.

A sp_control_dbmasterkey_password átadott paraméterek nem jelennek meg a nyomkövetésekben.

Ha a DMK megnyitásához a sp_control_dbmasterkey_password használatával hozzáadott hitelesítő adatot használja, a DMK újra lesz titkosítva az SMK által. Ha az adatbázis írásvédett módban van, az újratitkosítási művelet meghiúsul, és a DMK titkosítatlan marad. A DMK későbbi eléréséhez a OPEN MASTER KEY utasítást és egy jelszót kell használnia. A jelszó használatának elkerülése érdekében az adatbázis írásvédett üzemmódba helyezése előtt hozza létre a hitelesítő adatokat.

Lehetséges visszamenőleges kompatibilitási probléma

A tárolt eljárás jelenleg nem ellenőrzi, hogy létezik-e kulcs. Ez a funkció a visszamenőleges kompatibilitás érdekében engedélyezett, de figyelmeztetést jelenít meg. Ez a viselkedés elavult. Egy későbbi kiadásban a kulcsnak léteznie kell, és a tárolt eljárásban használt jelszónak sp_control_dbmasterkey_password meg kell egyeznie a DMK titkosításához használt jelszavak egyikével.

Engedélyek

A sysadmin rögzített kiszolgálói szerepkör tagságát igényli, vagy közvetlenül ezen a tárolt eljáráson hajthat végre engedélyt.

Példák

A cikkben szereplő kódminták a AdventureWorks2025 vagy AdventureWorksDW2025 mintaadatbázist használják, amelyet a Microsoft SQL Server-minták és közösségi projektek kezdőlapjáról tölthet le.

Egy. Hitelesítő adatok létrehozása az AdventureWorks főkulcsához

Az alábbi példa létrehoz egy hitelesítő adatot a AdventureWorks2025 DMK számára, és a főkulcsjelszót a hitelesítő adatok titkos kulcsaként menti. Mivel a sp_control_dbmasterkey_password átadott összes paraméternek adattípusúnak kell lennie, nvarchar, a szöveges sztringek az öntvény operátorral Nlesznek konvertálva.

EXECUTE sp_control_dbmasterkey_password
    @db_name = N'AdventureWorks2022',
    @password = N'sdfjlkj#mM00sdfdsf98093258jJlfdk4',
    @action = N'add';
GO

B. Adatbázis főkulcsának hitelesítő adatainak elvetése

Az alábbi példa eltávolítja az A példában létrehozott hitelesítő adatokat. Minden paraméterre szükség van, beleértve a jelszót is.

EXECUTE sp_control_dbmasterkey_password
    @db_name = N'AdventureWorks2022',
    @password = N'sdfjlkj#mM00sdfdsf98093258jJlfdk4',
    @action = N'drop';
GO