Поделиться через


Шифрование базы данных

Компонент Database Engine для SQL Server Compact 4.0 позволяет шифровать базы данных. Зашифрованные базы данных дополнительно защищены паролем.

Важно!

Поскольку доступ к зашифрованным базам данных осуществляется только при наличии пароля, в случае его утраты данные восстановить нельзя.

Режимы шифрования

SQL Server Compact 4.0 поддерживает следующие режимы шифрования базы данных. Новые алгоритмы шифрования (сочетание шифрования и хэширования) привязаны к этим режимам шифрования.

Алгоритм шифрования AES доступен на всех платформах, поддерживаемых SQL Server Compact 4.0, для шифрования с ключом длиной 128 бит и 256 бит. Алгоритм шифрования SHA доступен для хэширования с ключом длиной 256 бит и 512 бит.

  1. Platform Default. В этом режиме используются следующие алгоритмы: AES128_SHA256, где AES128 — алгоритм шифрования с 128-битным ключом, а SHA256 — алгоритм хэширования с 256-битным ключом. Этот режим шифрования применяется по умолчанию на всех платформах, которые поддерживает SQL Server Compact 4.0.

  2. Engine Default. В этом режиме база данных шифруется с помощью алгоритма AES256_SHA512, где AES256 — алгоритм шифрования, а SHA512 — безопасный алгоритм хэширования. Длина ключа по умолчанию используется для обеспечения обратной совместимости с платформой SQL Server Compact 3.5.

Примечание

Можно указать тип шифрования для базы данных, установив атрибут строки подключения Encryption Mode, в один из доступных режимов шифрования: Platform Default или Engine Default.

Создание зашифрованных баз данных

Зашифрованные базы данных можно создавать, устанавливая свойства шифрования и пароля при создании базы данных. Зашифрованные базы данных создаются следующими методами.

  • С помощью синтаксиса SQL.

    Чтобы создать зашифрованную базу данных с помощью синтаксиса SQL, укажите параметр database_password. Тогда по умолчанию база данных будет зашифрована. Режимом шифрования по умолчанию будет Platform Default. Например:

    Create Database "secure.sdf" databasepassword '<password>' 
    
  • С помощью поставщика данных .NET Compact Framework.

    Чтобы создать с помощью метода SqlCeEngine.CreateDatabase базу данных, защищенную паролем, в строке подключения необходимо указать свойства пароля. Например:

    "data source=\secure.sdf;encryption mode=platform default;password=<enterStrongPasswordHere>;
    

    Дополнительные сведения см. в описании класса System.Data.SqlServerCe.SqlCeEngine в документации по пакету MicrosoftVisual Studio.

  • С помощью OLE DB.

    Для создания зашифрованной базы данных с помощью поставщика OLE DB для SQL Server Compact необходимо задать режим шифрования с помощью характерного для поставщика свойства DBPROP_SSCE_ENCRYPTIONMODE и пароль с помощью характерного для поставщика свойства DBPROP_SSCE_DBPASSWORD.

Доступ к зашифрованным базам данных

Чтобы открыть зашифрованную базу данных, необходимо указать пароль. Доступ к зашифрованным базам данных можно получить следующими методами.

  • Использование поставщика данных для SQL Server Compact

    Чтобы получить доступ к базе данных, защищенной паролем, с помощью метода SqlCeConnection.Open, в строке подключения необходимо указать свойство пароля. Например:

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

    Дополнительные сведения см. в описании класса System.Data.SqlServerCe.SqlCeConnection в документации по пакету Visual Studio.

  • Использование OLE DB

    Чтобы открыть в OLE DB базу данных, защищенную паролем, необходимо указать свойство поставщика DBPROP_SSCE_DBPASSWORD.

Примечание

При попытке открыть файл базы данных, созданный в предыдущей версии SQL Server Compact, появится сообщение о том, что файл не может быть открыт. Причина заключается в том, что формат файла базы данных для SQL Server Compact 4.0 отличается от формата предыдущих версий. Открыть файл базы данных с помощью SQL Server Compact 4.0 можно только после его обновления.

Можно обновлять базы данных SQL Server Compact 3.1/3.5 с переходом на версию SQL Server Compact 4.0, но не базы данных SQL Server Compact 2.0. Дополнительные сведения см. в разделе Обновление с предыдущих версий (SQL Server Compact).

См. также

Задания

Практическое руководство: защита базы данных (Visual Studio)