views:

75

answers:

2

Hi All,

I need to build a quicken like application, where data needs to be secure. I don't see any database being used by Quicken. I could use XML, MDF or Access database, but data is not secure in the tables. What is the best option? How does Quicken handle it? My application may also have document attachments as well. The functionality of this application is similar to quicken but not an accounting/financial in functionality.

Thanks a bunch!

A: 

I'm really not sure what you're getting at. Quicken may use it's own database format (or it might just be something like SQLLite or BerkeleyDB) but that doesn't make it "secure", just "obscure".

Nothing stops me from opening a quicken datafile and changing data around if I want, either randomly, or if I understand the format deliberately.

Are you really asking for a standalone database format?

Update:

Based on your responses, then a good choice would probably be SQLCE (Sql Server Compact Edition). This creates a binary file and is based on the SQL Server backend, but it is not client/server. It's more like an access database, but far more capable.

Also, since I notice you ask about license, there is no client access license required if you are not using sql ce in a client/server mode. If you are using it in standalone mode, no cal is required.

Mystere Man
Well, try opening a QDF file. It is all encrypted. And I think Quicken stores all its data in this file. You can modify this file, but then Quicken can not open the file. I mean open file using a text editor like Notepad, Textpad etc...
WinFXGuy
Why do you think it's encrypted? Just because it's binary? There are lots of programs that can read quicken data formats, if it were encrypted, that wouldn't be possible. Try opening an MDF or MDB file, and it looks "encrypted" also.
Mystere Man
Are you really asking for a standalone database format?May be yes - But, it should only be open by the application, but not with with any text editors, like Quicken MDF file.
WinFXGuy
Mystere Man, I am not sure what this QDF file is. May be it is binary. Then, how do you create one? All I need is, it should not be obvious for the user to open in a text editor and view the contents and modify it. As longs as,only the application opens, I am fine with it.
WinFXGuy
Thanks Mystere Man and Ivan! Both of your answers deserve the correct answer, but it only allows one answer to be marked as correct. I think I will go with SQL CE, since at a future point I might have to sync with SQL Server.
WinFXGuy
+1  A: 

You could use an embedded database such as VistaDB. This is an embedded database which can be accessed in a multi-user way as well. The good thing about this DB is that you can encrypt columns, tables or the entire DB. It uses a Blowfish encryption algorythm, further, it is highly compatable with .NET and SQL Server plus it can store BLOBs to allow you to store whole documents within the DB.

This particular DB can use Stored Procs as well as Triggers. I would suggest you take a look at it, a number of other embedded DB's are available, however, you may find that they do not support Stored Procs or Encypted columns etc.

www.vistadb.com

You may also like to try other DBs too such as Firebird or SqlLite (while I use VistaDB because of it's compatability with SQL and .NET, I would suggest that SqlLite is also a very good, stable embedded DB...and it is free, there are also .NET wrappers for it on Codeplex and Sourceforge).

VistaDB will secure the DB.

Hope this helps.

Ivan Dormain
Is VistaDB open source? What are their licence requirements for software distribution?
WinFXGuy
Looks like SQLLite is the best option, as this is the open source and I can freely distribute for commercial puposes along with my application. Do I just need to ship on DLL for SQLLite?
WinFXGuy
SQL CE can be distributed with your app as well for no royalty. It's not open source, but unless your app is open source (and even then, unless you're really a free software nazi) it shouldn't make any difference.
Mystere Man
No my app is not going to be open source. It will be a commercial application. No, I am not really a fan of free software, let alone nazi, but being a startup company, I am price conscious! :)
WinFXGuy
VistaDB is NOT OPEN SOURCE, it is approx 500USD, but I have found it to be very good. Sql Lite you do need to ship the assembly, you should be able to (I am not sure though) add it to your project and embed it or use the assembly embedding utility provided with .NET.SQL CE is another alternative, however, both this and Sql Lite may not provide you with the level of encryption/protection you're after...check with the documentation. VistaDB can be distributed royalty free along with the other aforementioned DB's. VistaDB also provides a .NET solution you can use and re-badge for DB admin....
Ivan Dormain