다음을 통해 공유


CREATE MASTER KEY(Transact-SQL)

데이터베이스 마스터 키를 만듭니다.

항목 링크 아이콘 Transact-SQL 구문 표기 규칙

구문

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'password'

인수

  • PASSWORD ='password'
    데이터베이스의 마스터 키를 암호화하는 데 사용되는 암호입니다. password는 SQL Server 인스턴스를 실행하는 컴퓨터의 Windows 암호 정책 요구 사항을 따라야 합니다.

주의

데이터베이스 마스터 키는 데이터베이스에 있는 인증서와 비대칭 키의 개인 키를 보호하는 데 사용되는 대칭 키입니다. 마스터 키는 생성 시에 AES_256 알고리즘 및 사용자 제공 암호를 사용하여 암호화됩니다. 마스터 키의 자동 암호 해독을 설정하기 위해 키 복사본이 서비스 마스터 키를 사용하여 암호화되고 해당 데이터베이스 및 master에 모두 저장됩니다. 일반적으로 master에 저장된 복사본은 마스터 키가 변경될 때마다 자동으로 업데이트됩니다. 이 기본값은 ALTER MASTER KEY의 DROP ENCRYPTION BY SERVICE MASTER KEY 옵션을 사용하여 변경할 수 있습니다. 서비스 마스터 키를 사용하여 암호화되지 않은 마스터 키는 OPEN MASTER KEY 문과 암호를 사용하여 열어야 합니다.

master에서 sys.databases 카탈로그 뷰의 is_master_key_encrypted_by_server 열은 데이터베이스 마스터 키가 서비스 마스터 키로 암호화되었는지 여부를 나타냅니다.

데이터베이스 마스터 키에 대한 정보는 sys.symmetric_keys 카탈로그 뷰에 표시됩니다.

중요 정보중요

마스터 키는 BACKUP MASTER KEY를 사용하여 백업하고 백업 복사본을 외부의 안전한 위치에 보관해야 합니다.

SMK(서비스 마스터 키)와 DMK(데이터베이스 마스터 키)는 AES-256 알고리즘을 사용하여 보호됩니다.

사용 권한

데이터베이스에 대한 CONTROL 권한이 필요합니다.

다음 예에서는 AdventureWorks2012 데이터베이스에 대한 데이터베이스 마스터 키를 만듭니다. 이 키는 23987hxJ#KL95234nl0zBe 암호를 사용하여 암호화됩니다.

USE AdventureWorks2012;
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '23987hxJ#KL95234nl0zBe';
GO

참고 항목

참조

sys.symmetric_keys(Transact-SQL)

sys.databases(Transact-SQL)

OPEN MASTER KEY(Transact-SQL)

ALTER MASTER KEY(Transact-SQL)

DROP MASTER KEY(Transact-SQL)

CLOSE MASTER KEY(Transact-SQL)

개념

암호화 계층