sp_control_dbmasterkey_password(Transact-SQL)

데이터베이스 마스터 키를 여는 데 필요한 암호가 포함된 자격 증명을 추가 또는 삭제합니다.

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

구문

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

인수

  • @db_name=N'database_name'
    이 자격 증명에 연결된 데이터베이스의 이름을 지정합니다. 시스템 데이터베이스 이름은 사용할 수 없습니다. database_namenvarchar입니다.
  • @password= N'password'
    마스터 키의 암호를 지정합니다. passwordnvarchar입니다.
  • @action=N'add'
    지정된 데이터베이스에 대한 자격 증명이 자격 증명 저장소에 추가되도록 지정합니다. 자격 증명에는 데이터베이스 마스터 키의 암호가 포함됩니다. @action에 전달된 값은 nvarchar입니다.
  • @action= N'drop'
    지정된 데이터베이스에 대한 자격 증명이 자격 증명 저장소에서 삭제되도록 지정합니다. @action에 전달된 값은 nvarchar입니다.

주의

SQL Server 에 키 암호화 및 암호 해독을 위해 데이터베이스 마스터 키가 필요한 경우 SQL Server 는 인스턴스의 서비스 마스터 키로 데이터베이스 마스터 키의 암호를 해독하려고 시도합니다. 암호화가 실패하면 SQL Server 는 마스터 키가 필요한 데이터베이스와 패밀리 GUID가 동일한 마스터 키 자격 증명을 자격 증명 저장소에서 검색합니다. 그런 다음 SQL Server 는 암호 해독이 성공하거나 남은 자격 증명이 없을 때까지 일치하는 각 자격 증명에서 데이터베이스 마스터 키의 암호화를 해독하려고 시도합니다.

ms182754.Caution(ko-kr,SQL.90).gif주의:
sa 및 기타 고급 권한의 서버 보안 주체에서 액세스할 수 없어야 하는 데이터베이스에 대해서는 마스터 키를 만들지 마십시오. 서비스 마스터 키로 키 계층을 해독할 수 없도록 데이터베이스를 구성할 수 있습니다. 이 옵션은 sa 또는 기타 상위 권한 서버 보안 주체에서 액세스하지 않아야 하는 암호화된 정보가 포함된 데이터베이스를 위한 방어적 관점으로 지원됩니다. 이러한 데이터베이스에 대해 마스터 키 자격 증명을 만들면 이러한 방어 수단이 제거되어 sa 및 기타 상위 권한 서버 보안 주체에서 데이터베이스를 암호 해독할 수 있습니다.

sp_control_dbmasterkey_password를 사용하여 만든 자격 증명은 sys.master_key_passwords 카탈로그 뷰에 표시됩니다. 데이터베이스 마스터 키에 대해 생성되는 자격 증명 이름 형식은 다음과 같습니다. ##DBMKEY_<database_family_guid>_<random_password_guid>##. 암호는 자격 증명 암호로 저장됩니다. 자격 증명 저장소에 추가된 각 암호의 경우 sys.credentials에 행이 있습니다.

sp_control_dbmasterkey_password를 사용해서는 master, model, msdb 또는 tempdb 시스템 데이터베이스에 대한 자격 증명을 만들 수 없습니다.

sp_control_dbmasterkey_password는 암호로 지정된 데이터베이스의 마스터 키를 열 수 있는지 확인할 수 없습니다.

지정된 데이터베이스에 대한 자격 증명에 이미 저장된 암호를 지정하면 sp_control_dbmasterkey_password가 실패합니다.

[!참고] 다른 서버 인스턴스에 있는 두 데이터베이스는 같은 패밀리 GUID를 공유할 수 있습니다. 이 경우 데이터베이스는 자격 증명 저장소에서 동일한 마스터 키 레코드를 공유합니다.

sp_control_dbmasterkey_password에 전달된 매개 변수는 추적에 표시되지 않습니다.

사용 권한

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

1. AdventureWorks 마스터 키에 대한 자격 증명 만들기

다음 예에서는 AdventureWorks 데이터베이스 마스터 키에 대한 자격 증명을 만들고 자격 증명에 있는 암호로 마스터 키 암호를 저장합니다. sp_control_dbmasterkey_password에 전달되는 모든 매개 변수의 데이터 형식은 nvarchar여야 하기 때문에 텍스트 문자열은 형변환 연산자 N으로 변환되어야 합니다.

EXEC sp_control_dbmasterkey_password @db_name = N'AdventureWorks', 
    @password = N'sdfjlkj#mM00sdfdsf98093258jJlfdk4', @action = N'add';
GO

2. 데이터베이스 마스터 키에 대한 자격 증명 삭제

다음 예에서는 예 1에서 만든 자격 증명을 삭제합니다. 여기에는 암호를 포함한 모든 매개 변수가 필요합니다.

EXEC sp_control_dbmasterkey_password @db_name = N'AdventureWorks', 
    @password = N'sdfjlkj#mM00sdfdsf98093258jJlfdk4', @action = N'drop';
GO

참고 항목

참조

보안 저장 프로시저(Transact-SQL)
시스템 저장 프로시저(Transact-SQL)
sys.credentials(Transact-SQL)

관련 자료

암호화된 미러 데이터베이스 설정
자격 증명

도움말 및 정보

SQL Server 2005 지원 받기