Guys, thank you for the discussion. I'm really learning a lot from your pieces of advice. Remember, I'm new on this arena of programming in FP and Lazarus. I've my background in VB.net and C# from Microsoft.net Frameworks. There are many file-based databases that support passwords like VistaDB and many others. I thought that its the same this side!
SQLcipher is the most popular open source transparent SQLite encryption add-on.
Now, look at my scenario, I'm making a small App for a Savings and Credit Cooperative Society where members' sensitive transactions will be saved in a SQLite database including their savings, withdraws and other crucial information. Isn't it prudent to have such a databse be protected with a password such that a person using the computer at anytime uses another program to open it and may be change the figures?
One trick other desktop applications storing data in SQLite is known to have used, is to modify the SQLite
data file header. Section 1.3 describes the header format. Some applications change the header string from the default 'SQLite format 3\000' to something else. (SQLcipher does this to an encrypted database.) Then the standard sqlite3 CLI tool is unable to read the file.
As for user authentication like what is talked about for FB embedded in this thread, an
extension exists for SQLite.
Ultimately, as many others have pointed out here and elsewhere, when the SQLite database file is physically located on the user's computer, a dedicated user (or an attacker who has access to your application and the database file) will be able to reverse engineer whatever 'protections' you implement in your application. These protections are roadblocks, not impenetrable barriers.