SQLite開発チームは5月16日(現地時間)、SQLiteデータベースの最新版v3.42.0をリリースしました(Phoronix)。
SQLite 3.42で最も注目の変更点は、FTS5 secure-deleteコマンドの導入です。このオプションを使用すると、コンテンツ削除時にFTS5の転置インデックスからすべてのフォレンジックトレースが削除されるため、安全な削除を実行することができます。
ドキュメントでは以下のように説明されています。
Normally, when an entry in an fts5 table is updated or deleted, instead of removing entries from the full-text index, delete-keys are added to the new b-tree created by the transaction. This is efficient, but it means that the old full-text index entries remain in the database file until they are eventually removed by merge operations on the full-text index. Anyone with access to the database can use these entries to trivially reconstruct the contents of deleted FTS5 table rows. However, if the 'secure-delete' option is set to 1, then full-text entries are actually removed from the database when existing FTS5 table rows are updated or deleted. This is slower, but it prevents old full-text entries from being used to reconstruct deleted table rows.
通常、fts5テーブルのエントリーが更新または削除されると、フルテキストインデックスからエントリーを削除する代わりに、トランザクションによって作成される新しいb-treeにdelete-keyが追加されます。これは効率的ですが、古いフルテキストインデックスエントリが、最終的にフルテキストインデックスに対するマージ操作によって削除されるまで、データベースファイルに残っていることを意味します。データベースにアクセスできる人なら誰でも、これらのエントリーを使用して、削除されたFTS5テーブルの行の内容を簡単に再構築することができます。しかし、'secure-delete' オプションを1に設定すると、既存のFTS5テーブル行が更新または削除されたときに、全文エントリが実際にデータベースから削除されます。これはより遅いですが、削除されたテーブル行を再構築するために古いフルテキストエントリが使用されるのを防ぐことができます。
その他、JSON5拡張をサポートするためのJSON SQL関数の改善や、新しいデータベース構成オプションの追加、クエリプランナーの改善、アプリケーション定義SQL関数の改良などさまざまな変更が行われています。
リリースノートはこちらで確認可能です。
タイトル | SQLite | |
---|---|---|
公式サイト | http://www.sqlite.org/ | |
ソフトアンテナ | https://softantenna.com/softwares/1993-sqlite | |
説明 | 埋め込み可能なSQLデータベースエンジン。 |