암호화 사용

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

SMO에서 서비스 마스터 키는 ServiceMasterKey 개체로 표시됩니다. 개체의 속성에서 ServiceMasterKey 참조됩니다 Server . 메서드를 사용하여 Regenerate 다시 생성할 수 있습니다.

데이터베이스 마스터 키는 개체로 MasterKey 표시됩니다. 이 속성은 IsEncryptedByServer 데이터베이스 마스터 키가 서비스 마스터 키로 암호화되는지 여부를 나타냅니다. master 데이터베이스의 암호화된 복사본은 데이터베이스 마스터 키가 변경될 때마다 자동으로 업데이트됩니다.

DropServiceKeyEncryption 메서드를 사용하여 서비스 키 암호화를 삭제하고 암호를 사용하여 데이터베이스 암호화 키를 암호화할 수 있습니다. 이 경우 보안이 유지된 프라이빗 키에 액세스하기 전에 데이터베이스 마스터 키를 명시적으로 열어야 합니다.

데이터베이스가 SQL Server 인스턴스에 연결되어 있는 경우 데이터베이스 마스터 키에 대한 암호를 제공하거나 메서드를 실행 AddServiceKeyEncryption 하여 서비스 마스터 키를 사용하여 암호화에 사용할 수 있는 데이터베이스 마스터 키의 암호화되지 않은 복사본을 만들어야 합니다. 이 단계는 데이터베이스 마스터 키를 명시적으로 열 필요가 없도록 하는 것이 좋습니다.

이 메서드는 Regenerate 데이터베이스 마스터 키를 다시 생성합니다. 데이터베이스 마스터 키가 다시 생성되면 데이터베이스 마스터 키로 암호화된 모든 키가 암호 해독된 다음 새 데이터베이스 마스터 키로 암호화됩니다. 이 메서드는 DropServiceKeyEncryption 서비스 마스터 키로 데이터베이스 마스터 키의 암호화를 제거합니다. AddServiceKeyEncryption 는 서비스 마스터 키를 사용하여 마스터 키의 복사본을 암호화하고 현재 데이터베이스와 master 데이터베이스 모두에 저장합니다.

SMO에서 인증서는 개체로 Certificate 표시됩니다. 개체에는 Certificate 공개 키, 주체 이름, 유효 기간 및 발급자 정보를 지정하는 속성이 있습니다. 인증서에 액세스할 수 있는 권한은 Grant, RevokeDeny 메서드를 사용하여 제어됩니다.

다음 코드 예제를 사용하려면 애플리케이션을 만들 프로그래밍 환경, 프로그래밍 템플릿 및 프로그래밍 언어를 선택해야 합니다. 자세한 내용은 Visual Studio .NET에서 Visual C# SMO 프로젝트 만들기를 참조하세요.

Visual C에서 인증서 추가#

코드 예제에서는 암호화 암호를 사용하여 간단한 인증서를 만듭니다. 다른 개체와 달리 메서드에는 Create 여러 오버로드가 있습니다. 예제에 사용된 오버로드는 암호화 암호를 사용하여 새 인증서를 만듭니다.

{  
            //Connect to the local, default instance of SQL Server.   
            {  
                Server srv = new Server();  
  
                //Reference the AdventureWorks2022 database.   
                Database db = srv.Databases["AdventureWorks2022"];  
  
                //Define a Certificate object variable by supplying the parent database and name in the constructor.   
                Certificate c = new Certificate(db, "Test_Certificate");  
  
                //Set the start date, expiry date, and description.   
                System.DateTime dt;  
                DateTime.TryParse("January 01, 2010", out dt);  
                c.StartDate = dt;  
                DateTime.TryParse("January 01, 2015", out dt);  
                c.ExpirationDate = dt;  
                c.Subject = "This is a test certificate.";  
                //Create the certificate on the instance of SQL Server by supplying the certificate password argument.   
                c.Create("pGFD4bb925DGvbd2439587y");  
            }  
        }   

PowerShell에서 인증서 추가

코드 예제에서는 암호화 암호를 사용하여 간단한 인증서를 만듭니다. 다른 개체와 달리 메서드에는 Create 여러 오버로드가 있습니다. 예제에 사용된 오버로드는 암호화 암호를 사용하여 새 인증서를 만듭니다.

# Set the path context to the local, default instance of SQL Server and get a reference to AdventureWorks2022  
CD \sql\localhost\default\databases  
$db = get-item AdventureWorks2022  
  
#Create a certificate  
  
$c = New-Object -TypeName Microsoft.SqlServer.Management.Smo.Certificate -argumentlist $db, "Test_Certificate"  
$c.StartDate = "January 01, 2010"  
$c.Subject = "This is a test certificate."  
$c.ExpirationDate = "January 01, 2015"  
  
#Create the certificate on the instance of SQL Server by supplying the certificate password argument.  
$c.Create("pGFD4bb925DGvbd2439587y")  
  

참고 항목

암호화 키 사용