데이터베이스 암호 보호

SQL Server Compact 데이터베이스 엔진을 사용하면 로컬 데이터베이스에 액세스할 때 암호를 입력하도록 설정할 수 있습니다. SQL Server Compact에서는 보안이 설정되는 데이터베이스에 대해 하나의 암호가 생성되며 데이터베이스의 사용자 각각에 대해 암호가 생성되지는 않습니다. SQL Server Compact 데이터베이스의 암호는 강력한 암호여야 합니다. 암호에는 다음과 같은 특징이 있어야 합니다.

  • 최대 40자까지 가능합니다.

  • 문자, 기호 또는 숫자를 입력하거나 이들을 조합하여 입력할 수 있습니다.

  • 복구할 수 없습니다.

참고

암호만으로는 데이터베이스 파일의 데이터를 일반 텍스트로 읽는 것을 방지할 수 없습니다. 암호화와 암호를 둘 다 사용하면 데이터를 암호화된 형식으로 저장하므로 데이터베이스에 프로그래밍 방식으로 액세스하는 것을 제한할 수 있습니다.

암호로 보호된 데이터베이스 생성

데이터베이스를 만들 때 암호 속성을 지정하여 암호로 보호된 데이터베이스를 만듭니다. 다음과 같은 방법으로 암호로 보호된 데이터베이스를 만들 수 있습니다.

  • SQL 구문 사용

    SQL 구문을 통해 암호로 보호된 데이터베이스를 만들려면 CREATE DATABASE 문에서 데이터베이스 암호를 지정합니다. 다음 예와 같이 암호는 DATABASEPASSWORD 키워드를 따라야 하며 작은 따옴표로 묶어야 합니다.

    CREATE DATABASE "secure.sdf" 
    DATABASEPASSWORD '<enterStrongPasswordHere>'
    
  • ADO.NET 사용

    SqlCeEngine.CreateDatabase 메서드를 사용하여 암호로 보호된 데이터베이스를 만들려면 다음 예와 같이 연결 문자열에 암호 속성을 지정해야 합니다.

    "data source=\ssce.sdf; password=<enterStrongPasswordHere>"
    

    자세한 내용은 Visual Studio의 .NET Compact Framework SDK(소프트웨어 개발 키트)에서 System.Data.SqlServerCe.SqlCeEngine 클래스를 참조하십시오.

  • OLE DB 사용

    SQL Server Compact용 OLE DB 공급자를 사용하여 암호화된 데이터베이스를 만들려면 공급자별 속성 DBPROP_SSCE_ENCRYPTIONMODE를 사용하여 암호화 모드를 지정하고 공급자별 속성 DBPROP_SSCE_DBPASSWORD를 사용하여 암호를 지정해야 합니다.

암호로 보호된 데이터베이스 액세스

암호로 보호된 데이터베이스를 열려면 암호를 입력해야 합니다. 다음과 같은 방법으로 암호로 보호된 데이터베이스에 액세스할 수 있습니다.

  • SQL Server Compact용 데이터 공급자 사용

    SqlCeConnection.Open 메서드를 사용하여 암호로 보호된 데이터베이스에 액세스하려면 연결 문자열에 암호 속성을 지정해야 합니다. 예를 들면 다음과 같습니다.

    "data source=\ssce.sdf; password=<enterStrongPasswordHere>"
    

    자세한 내용은 Visual Studio의 .NET Compact Framework SDK에서 System.Data.SqlServerCe.SqlCeConnection 클래스를 참조하십시오.

  • OLE DB 사용

    SQL Server Compact에서는 파일 수준의 액세스 제어 메커니즘을 지원합니다. 이 메커니즘을 사용하면 암호로 보호된 SQL Server Compact 데이터베이스에 액세스할 때 암호를 입력해야 합니다. 데이터베이스를 열 때마다 이 암호를 전달해야 합니다. DBPROPSET_SSCE_DBINIT 공급자별 속성 집합의 DBPROP_SSCE_DBPASSWORD 속성을 사용하여 암호를 지정할 수 있습니다. 데이터베이스를 만들 때 이 속성을 사용하면 데이터베이스에 데이터베이스 암호를 지정할 수 있습니다. 암호화된 데이터베이스는 항상 암호로 보호됩니다.