Шифрование базы данных
Компонент Database Engine для SQL Server Compact 4.0 позволяет шифровать базы данных. Зашифрованные базы данных дополнительно защищены паролем.
Важно!
Поскольку доступ к зашифрованным базам данных осуществляется только при наличии пароля, в случае его утраты данные восстановить нельзя.
Режимы шифрования
SQL Server Compact 4.0 поддерживает следующие режимы шифрования базы данных. Новые алгоритмы шифрования (сочетание шифрования и хэширования) привязаны к этим режимам шифрования.
Алгоритм шифрования AES доступен на всех платформах, поддерживаемых SQL Server Compact 4.0, для шифрования с ключом длиной 128 бит и 256 бит. Алгоритм шифрования SHA доступен для хэширования с ключом длиной 256 бит и 512 бит.
Platform Default. В этом режиме используются следующие алгоритмы: AES128_SHA256, где AES128 — алгоритм шифрования с 128-битным ключом, а SHA256 — алгоритм хэширования с 256-битным ключом. Этот режим шифрования применяется по умолчанию на всех платформах, которые поддерживает SQL Server Compact 4.0.
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)