Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
azure SQL Managed Instance
Přidá nebo zahodí přihlašovací údaje obsahující heslo potřebné k otevření hlavního klíče databáze (DMK).
Syntax
sp_control_dbmasterkey_password @db_name = 'db_name'
, @password = 'password'
, @action = { N'add' | N'drop' }
Argumenty
Důležitý
Argumenty rozšířených uložených procedur musí být zadány v určitém pořadí, jak je popsáno v části Syntaxe. Pokud jsou parametry zadány mimo pořadí, dojde k chybové zprávě.
@db_name = N'db_name'
Určuje název databáze přidružené k tomuto pověření. Nemůže to být systémová databáze. @db_name je nvarchar.
@password = N'heslo'
Určuje heslo dmK. @password je nvarchar.
@action = { N'add' | N'drop' }
Určuje akci pro přihlašovací údaje pro zadanou databázi v úložišti přihlašovacích údajů. Hodnota předaná @action je nvarchar.
Akce | Popis |
---|---|
add |
Určuje, že přihlašovací údaje pro zadanou databázi budou přidány do úložiště přihlašovacích údajů. Přihlašovací údaje obsahují heslo dmK. |
drop |
Určuje, že přihlašovací údaje pro zadanou databázi budou vyřazeny z úložiště přihlašovacích údajů. |
Poznámky
Pokud SQL Server potřebuje dmK k dešifrování nebo šifrování klíče, SQL Server se pokusí dešifrovat dmK pomocí hlavního klíče služby (SMK) instance. Pokud dešifrování selže, SQL Server vyhledá v úložišti přihlašovacích údajů přihlašovací údaje, které mají stejný identifikátor GUID rodiny jako databáze, pro kterou klíč potřebuje. SQL Server se pak pokusí dešifrovat DMK s jednotlivými odpovídajícími přihlašovacími údaji, dokud dešifrování nebude úspěšné nebo nebudou k dispozici žádné další přihlašovací údaje.
Opatrnost
Nevytvářejte přihlašovací údaje hlavního klíče pro databázi, která musí být nepřístupná pro sa
a další objekty zabezpečení serveru s vysokou úrovní oprávnění. Databázi můžete nakonfigurovat tak, aby její hierarchie klíčů nemohla být dešifrována pomocí sady SMK. Tato možnost je podporovaná jako hloubková ochrana pro databáze, které obsahují šifrované informace, které by neměly být přístupné pro sa
nebo jiné objekty zabezpečení serveru s vysokou úrovní oprávnění. Vytvoření přihlašovacích údajů pro takovou databázi odebere tuto hloubkovou ochranu a umožní sa
a další objekty zabezpečení serveru s vysokou úrovní oprávnění k dešifrování databáze.
Přihlašovací údaje vytvořené pomocí sp_control_dbmasterkey_password
jsou viditelné v zobrazení katalogu sys.master_key_passwords. Názvy přihlašovacích údajů vytvořených pro sady DMK mají následující formát: ##DBMKEY_<database_family_guid>_<random_password_guid>##
. Heslo se uloží jako tajný klíč přihlašovacích údajů. Každé heslo přidané do úložiště přihlašovacích údajů má odpovídající řádek v sys.credentials
.
Nemůžete použít sp_control_dbmasterkey_password
k vytvoření přihlašovacích údajů pro následující systémové databáze: master
, model
, msdb
nebo tempdb
.
sp_control_dbmasterkey_password
neověřuje, že heslo může otevřít sadu DMK zadané databáze.
Pokud zadáte heslo, které je již uloženo v přihlašovacích údajích pro zadanou databázi, sp_control_dbmasterkey_password
selže.
Dvě databáze z různých instancí serveru můžou sdílet stejný identifikátor GUID rodiny. V takovém případě databáze sdílejí stejné záznamy DMK v úložišti přihlašovacích údajů.
Parametry předané sp_control_dbmasterkey_password
se v trasování nezobrazují.
Při použití přihlašovacích údajů, které jste přidali pomocí sp_control_dbmasterkey_password
k otevření sady DMK, se sada DMK znovu zašifruje pomocí sady SMK. Pokud je databáze v režimu jen pro čtení, operace opětovného šifrování selže a sada DMK zůstane nezašifrovaná. Pro následný přístup k sadě DMK musíte použít příkaz OPEN MASTER KEY
a heslo. Abyste se vyhnuli použití hesla, vytvořte přihlašovací údaje před přesunutím databáze do režimu jen pro čtení.
Potenciální problém se zpětnou kompatibilitou
Uložená procedura v současné době nekontroluje, jestli klíč existuje. Tato funkce je povolená pro zpětnou kompatibilitu, ale zobrazí upozornění. Toto chování je zastaralé. V budoucí verzi musí klíč existovat a heslo použité v uložené proceduře sp_control_dbmasterkey_password
musí být stejné heslo jako jedno z hesel použitých k šifrování dmK.
Dovolení
Vyžaduje členství v správce systému pevné roli serveru nebo provést oprávnění přímo v této uložené proceduře.
Příklady
Ukázky kódu v tomto článku používají ukázkovou databázi AdventureWorks2022
nebo AdventureWorksDW2022
, kterou si můžete stáhnout z domovské stránky ukázky a komunitní projekty Microsoft SQL Serveru.
A. Vytvoření přihlašovacích údajů pro hlavní klíč AdventureWorks
Následující příklad vytvoří přihlašovací údaje pro AdventureWorks2022
DMK a uloží heslo hlavního klíče jako tajný klíč do přihlašovacích údajů. Vzhledem k tomu, že všechny parametry předávané sp_control_dbmasterkey_password
musí být datového typu nvarchar, textové řetězce jsou převedeny s operátorem přetypování N
.
EXEC sp_control_dbmasterkey_password
@db_name = N'AdventureWorks2022',
@password = N'sdfjlkj#mM00sdfdsf98093258jJlfdk4',
@action = N'add';
GO
B. Odstranění přihlašovacích údajů pro hlavní klíč databáze
Následující příklad odebere přihlašovací údaje vytvořené v příkladu A. Všechny parametry jsou povinné, včetně hesla.
EXEC sp_control_dbmasterkey_password
@db_name = N'AdventureWorks2022',
@password = N'sdfjlkj#mM00sdfdsf98093258jJlfdk4',
@action = N'drop';
GO
Související obsah
- nastavení šifrované zrcadlové databáze
- uložené procedury zabezpečení (Transact-SQL)
- uložené procedury systému (Transact-SQL)
- sys.credentials (Transact-SQL)
- přihlašovacích údajů (databázový stroj)