A Embarcadero disponibilizou um novo driver FireDAC para o banco de dados SQLite Encryption Extension (SEE). O download está no GetIt e aqui estão alguns detalhes por trás dessa decisão.
O RAD Studio 11 Alexandria, como as versões anteriores, vem com um driver FireDAC para o banco de dados SQLite, oferecendo duas abordagens diferentes para entrega. Uma opção é a vinculação estática, ou seja, compilar o SQLite no binário do aplicativo, vinculando o código compilado. A segunda opção é o link dinâmico, ou seja, usar uma DLL SQLite externa. As duas alternativas e suas configurações para diferentes plataformas são abordadas em detalhes em:
https://docwiki.embarcadero.com/RADStudio/Sydney/en/Connect_to_SQLite_database_(FireDAC)
Table of Contents
Criptografia FireDAC SQLite
A versão de link estático do driver FireDAC SQLite oferece suporte para criptografia de banco de dados, usando um mecanismo de gancho de banco de dados (SQLITE_HAS_CODEC) que agora foi removido das versões mais recentes do SQLite pela equipe de desenvolvimento de banco de dados. Por esta razão, o FireDAC ainda suporta criptografia SQLite na última versão do SQLite com o “recurso”. Se você deseja o SQLite mais recente e não precisa de criptografia, pode usar a versão DLL.
No futuro, o plano é descontinuar o FireDAC SQLite Encryption ou, pelo menos, fornecê-lo como uma opção legada, e mover para a versão mais recente do SQLite também para a versão compilada estaticamente. Observe também que se você passar do driver FireDAC SQLite Encryption para FireDAC SQLite Encryption Extension (SEE), terá uma implementação de criptografia diferente: Por esse motivo, os arquivos de banco de dados SQLite não serão compatíveis.
Extensão de criptografia SQLite (SEE)
O caminho a seguir com o SQLite Encryption da Hwaci (a empresa por trás do SQLite) é recomendar o uso do SQLite Encryption Extension (SEE), uma versão paga do SQLite. Você pode ler mais sobre este banco de dados nestes links:
- O wiki SQLite SEE tem documentação geral
- O Contrato de Licença de Software SQLite SEE (ou EULA)
- O preço SQLite SEE e informações de compra
Visto que alguns clientes solicitaram suporte ao SQLite EE, a Embarcadero criou um driver FireDAC específico. Observe que o contrato de licença indica que você deve usar links estáticos (mas, como não sou advogado, consulte a licença vinculada acima para obter detalhes). Nenhum terceiro como a Embarcadero tem o direito de distribuir o código-fonte da biblioteca ou o código binário compilado. Portanto, o que a Embarcadero está fornecendo aos desenvolvedores é o código-fonte do novo driver FireDAC, além de alguns scripts baseados em C ++ Builder para compilar a biblioteca. Você terá que construir e vincular as duas partes (código de biblioteca e unidade Delphi) em seu sistema de desenvolvimento – e isso pode exigir a posse do RAD Studio completo, pois você precisa compilar o código C ++ e Delphi.
Considere o InterBase ToGo como uma alternativa
Antes de ir para o lado prático e de download, observe que, dependendo de suas plataformas de destino e outros requisitos, você pode considerar o uso de InterBase ToGo e seu suporte de criptografia de banco de dados como uma alternativa ao SQLite EE – o modelo de preço é um pouco diferente, o que torna é difícil comparar diretamente, mas tenho certeza de que a equipe de vendas da Embarcadero pode ajudá-lo a descobrir.
Download do driver GetIt
Conforme mencionado, o download está disponível em um novo pacote GetIt específico para clientes com uma assinatura de atualização ativa:
A Embarcadero disponibilizará o download também no portal do cliente em breve. Abaixo, anexei o leia-me deste pacote GetIt com informações adicionais.
Arquivo Leia-me do driver FireDAC SQLite SEE
Este é o texto completo do arquivo leia-me no pacote:
FireDAC SQLite SEE classes de empacotamento de API estáticas, Copyright 2021 Embarcadero Technologies. Todos os direitos reservados.
O uso está sujeito ao RAD Studio 11 EULA, consulte https://www.embarcadero.com/products/rad-studio/rad-studio-eula
SQLite Encryption Extension (SEE) é um produto da Hipp, Wyrick & Company, Inc. (Hwaci) e está sujeito à
licença disponível em https://www.hwaci.com/sw/sqlite/license-see.html
=== Ligação estática
Esta é a maneira recomendada de usar o SQLite SEE com seu aplicativo. Use a nova unidade FireDAC.Phys.SQLiteWrapper.SEEStat.pas.
Ele permite a vinculação estática de sqlite3 SEE a um aplicativo. Esta unidade é fornecida aos clientes apenas como arquivo PAS, pois
para produzir DCU / etc precisamos do sqlite3.obj, que está sujeito à restrição da licença SQLite SEE.
Uso:
* Defina FDPhysSQLiteDriverLink.Linkage = slSEEStatic. Isso adicionará automaticamente FireDAC.Phys.SQLiteWrapper.SEEStat à cláusula “usa”
*… ou incluirá FireDAC.Phys.SQLiteWrapper.SEEStat em vez de FireDAC.Phys.SQLiteWrapper.Stat no aplicativo usa a cláusula
* Faça FireDAC.Phys.SQLiteWrapper.SEEStat em vez de FireDAC.Phys.SQLiteWrapper.Stat no aplicativo usa a cláusula * Faça FireDAC.Phys.SQLiteWrapper.SEEStat. pas acessível ao compilador
* Compile sqlite3 SEE e produza sqlite3_x86.obj / sqlite3_x64.obj. Consulte a seção “Recompilando SQLite SEE” abaixo
* Coloque sqlite3_x86.obj / sqlite3_x64.obj na pasta com FireDAC.Phys.SQLiteWrapper.SEEStat.pas
=== Ligação dinâmica
Está sujeita a restrições de redistribuição (consulte a licença Hwaci)
Uso:
* Definir FDPhysSQLiteDriverLink.Linkage = slDynamic
* Definir FDPhysSQLiteDriverLink.SEEKey = ‘xxx’, onde ‘xxx’ é a chave de ativação VER
Você pode ler mais detalhes em “wwwreadme.wiki” VER arquivo de distribuição, capítulo “Interface 5.0 C”
* Fornecer sqlite3.dll VER versão e torná-la acessível ao aplicativo FireDAC
=== O que funciona, o que não
funciona A criptografia FireDAC SQLite (FSE) suporta recursos que o SQLite SEE não suporta:
* quando a senha errada é especificada, o FSE retornará “senha errada”, SEE sempre retornará “o arquivo não é um banco de dados ”
* FSE pode retornar o algoritmo de criptografia atual, SEE não pode
* a lista de valores possíveis para o parâmetro de definição de conexão FireDAC“ Criptografar ”tem valores compatíveis com FSE, não SEE
Observe que os bancos de dados existentes construídos com criptografia FireDAC SQLite não são compatíveis com os bancos de dados SQLite SEE.
Quando você construir seu aplicativo, será bom primeiro obter os relatórios do ambiente FireDAC, para ter certeza de que “o SQLite correto” é usado.
=== Recompilando SQLite SEE
Use o sqlite_compile.bat fornecido para produzir sqlite3_x86.obj / sqlite3_x64.obj. Antes de executar sqlite_compile.bat, atualize-o e defina essas variáveis para seus valores reais:
* BDS – pasta de instalação do RAD Studio
* SQLITE_SRC – caminho para o arquivo de origem sqlite
Design. Code. Compile. Deploy.
Start Free Trial Upgrade Today
Free Delphi Community Edition Free C++Builder Community Edition