ALTER MASTER KEY(Transact-SQL)
적용 대상: Microsoft Fabric의 SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW) SQL 데이터베이스
데이터베이스 마스터 키의 속성을 변경합니다.
구문
SQL Server 구문
-- Syntax for SQL Server
ALTER MASTER KEY <alter_option>
<alter_option> ::=
<regenerate_option> | <encryption_option>
<regenerate_option> ::=
[ FORCE ] REGENERATE WITH ENCRYPTION BY PASSWORD = 'password'
<encryption_option> ::=
ADD ENCRYPTION BY { SERVICE MASTER KEY | PASSWORD = 'password' }
|
DROP ENCRYPTION BY { SERVICE MASTER KEY | PASSWORD = 'password' }
Microsoft Fabric의 Azure SQL Database 및 SQL 데이터베이스 구문
-- Syntax for Azure SQL Database
-- Note: DROP ENCRYPTION BY SERVICE MASTER KEY is not supported on Azure SQL Database.
ALTER MASTER KEY <alter_option>
<alter_option> ::=
<regenerate_option> | <encryption_option>
<regenerate_option> ::=
[ FORCE ] REGENERATE WITH ENCRYPTION BY PASSWORD = 'password'
<encryption_option> ::=
ADD ENCRYPTION BY { SERVICE MASTER KEY | PASSWORD = 'password' }
|
DROP ENCRYPTION BY { PASSWORD = 'password' }
Azure Synapse Analytics 및 분석 플랫폼 시스템(PDW) 구문
-- Syntax for Azure Synapse Analytics and Analytics Platform System
ALTER MASTER KEY <alter_option>
<alter_option> ::=
<regenerate_option> | <encryption_option>
<regenerate_option> ::=
[ FORCE ] REGENERATE WITH ENCRYPTION BY PASSWORD ='password'
<encryption_option> ::=
ADD ENCRYPTION BY SERVICE MASTER KEY
|
DROP ENCRYPTION BY SERVICE MASTER KEY
인수
PASSWORD ='password'
데이터베이스 마스터 키를 암호화하거나 암호 해독할 암호를 지정합니다. password는 SQL Server 인스턴스를 실행하는 컴퓨터의 Windows 암호 정책 요구 사항을 충족해야 합니다.
설명
REGENERATE 옵션은 데이터베이스 마스터 키와 이 키가 보호하는 모든 키를 다시 만듭니다. 키는 먼저 이전 마스터 키로 암호 해독된 다음 새 마스터 키로 암호화됩니다. 이 리소스 집약적 작업은 마스터 키가 손상되지 않는 한 수요가 적은 기간 동안 예약되어야 합니다.
SQL Server 2012(11.x) 에서는 AES 암호화 알고리즘을 사용하여 SMK(서비스 마스터 키) 및 DMK(데이터베이스 마스터 키)를 보호합니다. AES는 이전 버전에서 사용하는 3DES보다 최신 암호화 알고리즘입니다. 데이터베이스 엔진 인스턴스를 SQL Server 2012(11.x)로 업그레이드한 후 마스터 키를 AES로 업그레이드하려면 SMK 및 DMK를 다시 생성해야 합니다. SMK를 다시 생성하는 방법은 ALTER SERVICE MASTER KEY를 참조하세요.
FORCE 옵션을 사용하면 마스터 키를 사용할 수 없거나 서버에서 암호화된 모든 프라이빗 키의 암호를 해독할 수 없는 경우에도 키 다시 생성이 계속됩니다. 마스터 키를 열 수 없으면 RESTORE MASTER KEY 문을 사용하여 백업에서 마스터 키를 복원합니다. 마스터 키를 검색할 수 없거나 암호 해독에 실패한 경우에만 FORCE 옵션을 사용합니다. 복구할 수 없는 키로만 암호화된 정보는 손실됩니다.
DROP ENCRYPTION BY SERVICE MASTER KEY 옵션은 서비스 마스터 키로 데이터베이스 마스터 키에 대한 암호화를 제거합니다.
DROP ENCRYPTION BY SERVICE MASTER KEY는 Azure SQL Database에서 지원되지 않습니다.
ADD ENCRYPTION BY SERVICE MASTER KEY를 사용하면 마스터 키 복사본이 서비스 마스터 키를 사용하여 암호화되고 현재 데이터베이스와 master에 모두 저장됩니다.
사용 권한
데이터베이스에 대한 CONTROL 권한이 필요합니다. 데이터베이스 마스터 키가 암호로 암호화된 경우 해당 암호에 대한 지식도 필요합니다.
예제
다음 예에서는 AdventureWorks
에 대한 새 데이터베이스 마스터 키를 만들고 암호화 계층에서 아래에 있는 키를 다시 암호화합니다. 강력하고 고유한 암호로 대체 <secure password>
합니다.
USE AdventureWorks2022;
ALTER MASTER KEY REGENERATE WITH ENCRYPTION BY PASSWORD = '<secure password>';
GO
예: Azure Synapse Analytics 및 분석 플랫폼 시스템(PDW)
다음 예에서는 AdventureWorksPDW2012
에 대한 새 데이터베이스 마스터 키를 만들고 암호화 계층에서 아래에 있는 키를 다시 암호화합니다. 강력하고 고유한 암호로 대체 <secure password>
합니다.
USE master;
ALTER MASTER KEY REGENERATE WITH ENCRYPTION BY PASSWORD = '<secure password>';
GO