Firebird: 13.8. Database Encryption https://www.firebirdsql.org/file/documentation/chunk/en/refdocs/fblangref30/fblangref30-security-dbcrypt.html
Programming
Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!
Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.
Hope you enjoy the instance!
Rules
Rules
- Follow the programming.dev instance rules
- Keep content related to programming in some way
- If you're posting long videos try to add in some form of tldr for those who don't want to watch videos
Wormhole
Follow the wormhole through a path of communities [email protected]
The application encrypts the data, you save in the database the data encrypted. When you retrieve the info, the app decrypt it.
This makes it impossible to support any analytical SQL queries against the DB. Look into how to enable encryption at rest on whichever DB you choose.
So put an SQLite database on a Luks-encrypted partition or a Luks-encrypted filesystem in a file.
Turso: https://docs.turso.tech/libsql#encryption-at-rest
Also, DuckDB devs said it was planned: https://github.com/duckdb/duckdb/discussions/4512
SQLCipher fits that bill. I had some issues with language integration but depending on what you're using it might work for you.
Well, sqlite
For the low low price of $2000
Use an encryption library to decrypt the database in memory and encrypt it prior to writing it to disk. Assuming that you are not afraid of data loss due to power loss; that would be the most secure option and it works with the standard SQLite library
Or if you need more fault tolerance. The SQLite Encryption Extension (SEE) will read and write database files encrypted using 128-bit or 256-bit AES.
Encryption is usually implemented in the server or client code. Why do you want the database to handle encryption?
It is for as desktop app that stores data on a user drive.
Then the application should encrypt the data saved to the db.
I can't think of any scenario where it would make sense for the db to handle encryption.
Encryping by the application would kill the use of a lot of sql features such as SUM.
Depending on the application could you just mount a filesystem that supports encryption? Even if it’s just mounting a .tar
file.