ALTER CERTIFICATE(Transact-SQL)ALTER CERTIFICATE (Transact-SQL)

이 항목은 다음에 적용됩니다. 예SQL Server(2008부터)예Azure SQL Database예Azure SQL Data Warehouse 예병렬 데이터 웨어하우스 THIS TOPIC APPLIES TO: yesSQL Server (starting with 2008)yesAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse

인증서를 암호화하는 데 사용된 개인 키를 변경하거나 개인 키가 없는 경우 추가합니다.Changes the private key used to encrypt a certificate, or adds one if none is present. Service BrokerService Broker에 대한 인증서의 가용성을 변경합니다.Changes the availability of a certificate to Service BrokerService Broker.

항목 링크 아이콘 Transact-SQL 구문 규칙Topic link icon Transact-SQL Syntax Conventions

구문Syntax

-- Syntax for SQL Server and Azure SQL Database  

ALTER CERTIFICATE certificate_name   
      REMOVE PRIVATE KEY  
    | WITH PRIVATE KEY ( <private_key_spec> [ ,... ] )  
    | WITH ACTIVE FOR BEGIN_DIALOG = [ ON | OFF ]  

<private_key_spec> ::=   
      FILE = 'path_to_private_key'   
    | DECRYPTION BY PASSWORD = 'key_password'   
    | ENCRYPTION BY PASSWORD = 'password'   
-- Syntax for Azure SQL Data Warehouse and Parallel Data Warehouse  

ALTER CERTIFICATE certificate_name   
{  
      REMOVE PRIVATE KEY  
    | WITH PRIVATE KEY (   
        FILE = '<path_to_private_key>',  
        DECRYPTION BY PASSWORD = '<key password>' )
}  

인수Arguments

certificate_namecertificate_name
데이터베이스에서 인증서를 식별하는 고유한 이름입니다.Is the unique name by which the certificate is known in database.

FILE ='path_to_private_key'FILE ='path_to_private_key'
개인 키에 대해 파일 이름을 포함하여 전체 경로를 지정합니다.Specifies the complete path, including file name, to the private key. 이 매개 변수는 로컬 경로이거나 네트워크 위치에 대한 UNC 경로가 될 수 있습니다.This parameter can be a local path or a UNC path to a network location. 이 파일은 SQL ServerSQL Server 서비스 계정의 보안 컨텍스트 내에서 액세스할 수 있습니다.This file will be accessed within the security context of the SQL ServerSQL Server service account. 이 옵션을 사용할 경우 지정한 파일에 대한 액세스 권한이 서비스 계정에 있는지 확인해야 합니다.When you use this option, you must make sure that the service account has access to the specified file.

DECRYPTION BY PASSWORD ='key_password'DECRYPTION BY PASSWORD ='key_password'
개인 키를 해독하는 데 필요한 암호를 지정합니다.Specifies the password that is required to decrypt the private key.

ENCRYPTION BY PASSWORD ='password'ENCRYPTION BY PASSWORD ='password'
데이터베이스에서 인증서의 개인 키를 암호화하는 데 사용되는 암호를 지정합니다.Specifies the password used to encrypt the private key of the certificate in the database. passwordSQL ServerSQL Server 인스턴스를 실행하는 컴퓨터의 Windows 암호 정책 요구 사항을 충족해야 합니다.password must meet the Windows password policy requirements of the computer that is running the instance of SQL ServerSQL Server. 자세한 내용은 Password Policy을 참조하세요.For more information, see Password Policy.

REMOVE PRIVATE KEYREMOVE PRIVATE KEY
데이터베이스 내에서 더 이상 개인 키를 유지하지 않도록 지정합니다.Specifies that the private key should no longer be maintained inside the database.

ACTIVE FOR BEGIN_DIALOG = { ON | OFF }ACTIVE FOR BEGIN_DIALOG = { ON | OFF }
Service BrokerService Broker 대화 기능의 시작자가 인증서를 사용할 수 있게 합니다.Makes the certificate available to the initiator of a Service BrokerService Broker dialog conversation.

RemarksRemarks

개인 키는 certificate_name으로 지정한 공개 키와 일치해야 합니다.The private key must correspond to the public key specified by certificate_name.

파일에 있는 암호가 Null 암호로 보호되는 경우에는 DECRYPTION BY PASSWORD 절을 생략할 수 있습니다.The DECRYPTION BY PASSWORD clause can be omitted if the password in the file is protected with a null password.

데이터베이스에 있는 기존 인증서의 개인 키를 파일에서 가져오는 경우 해당 개인 키는 데이터베이스 마스터 키로 자동으로 보호됩니다.When the private key of a certificate that already exists in the database is imported from a file, the private key will be automatically protected by the database master key. 개인 키를 암호로 보호하려면 ENCRYPTION BY PASSWORD 절을 사용합니다.To protect the private key with a password, use the ENCRYPTION BY PASSWORD phrase.

REMOVE PRIVATE KEY 옵션을 사용하면 데이터베이스에서 인증서의 개인 키를 삭제할 수 있습니다.The REMOVE PRIVATE KEY option will delete the private key of the certificate from the database. 서명의 유효성 검증에 인증서를 사용할 때 또는 개인 키가 필요 없는 Service BrokerService Broker 시나리오에서 이 옵션을 사용할 수 있습니다.You can do this when the certificate will be used to verify signatures or in Service BrokerService Broker scenarios that do not require a private key. 대칭 키를 보호하는 인증서의 개인 키는 제거하지 마십시오.Do not remove the private key of a certificate that protects a symmetric key.

데이터베이스 마스터 키를 사용하여 개인 키를 암호화한 경우에는 해독 암호를 지정할 필요가 없습니다.You do not have to specify a decryption password when the private key is encrypted by using the database master key.

중요

데이터베이스에서 개인 키를 제거하기 전에 복사본을 만들어 보관하십시오.Always make an archival copy of a private key before removing it from a database. 자세한 내용은 BACKUP CERTIFICATE(Transact-SQL)를 참조하세요.For more information, see BACKUP CERTIFICATE (Transact-SQL).

포함된 데이터베이스에서는 WITH PRIVATE KEY 옵션을 사용할 수 없습니다.The WITH PRIVATE KEY option is not available in a contained database.

사용 권한Permissions

인증서에 대한 ALTER 권한이 필요합니다.Requires ALTER permission on the certificate.

Examples

1.A. 인증서 암호 변경Changing the password of a certificate

ALTER CERTIFICATE Shipping04   
    WITH PRIVATE KEY (DECRYPTION BY PASSWORD = 'pGF$5DGvbd2439587y',  
    ENCRYPTION BY PASSWORD = '4-329578thlkajdshglXCSgf');  
GO  

2.B. 개인 키를 암호화하는 데 사용된 암호 변경Changing the password that is used to encrypt the private key

ALTER CERTIFICATE Shipping11   
    WITH PRIVATE KEY (ENCRYPTION BY PASSWORD = '34958tosdgfkh##38',  
    DECRYPTION BY PASSWORD = '95hkjdskghFDGGG4%');  
GO  

3.C. 데이터베이스의 기존 인증서에 대한 개인 키 가져오기Importing a private key for a certificate that is already present in the database

ALTER CERTIFICATE Shipping13   
    WITH PRIVATE KEY (FILE = 'c:\\importedkeys\Shipping13',  
    DECRYPTION BY PASSWORD = 'GDFLKl8^^GGG4000%');  
GO  

4.D. 개인 키 보호를 암호에서 데이터베이스 마스터 키로 변경Changing the protection of the private key from a password to the database master key

ALTER CERTIFICATE Shipping15   
    WITH PRIVATE KEY (DECRYPTION BY PASSWORD = '95hk000eEnvjkjy#F%');  
GO  

참고 항목See Also

CREATE CERTIFICATE(Transact-SQL) CREATE CERTIFICATE (Transact-SQL)
DROP CERTIFICATE(Transact-SQL) DROP CERTIFICATE (Transact-SQL)
BACKUP CERTIFICATE(Transact-SQL) BACKUP CERTIFICATE (Transact-SQL)
암호화 계층 Encryption Hierarchy
EVENTDATA(Transact-SQL)EVENTDATA (Transact-SQL)