Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. Database & SysAdmin
  3. Database
  4. DB engines for software local/file DB (no server running)

DB engines for software local/file DB (no server running)

Scheduled Pinned Locked Moved Database
databasec++tutorialcsharpmysql
4 Posts 2 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • J Offline
    J Offline
    Jean Marc Molina
    wrote on last edited by
    #1

    Hello, I develop a desktop application with MS VC++ 6/MFC/ADO that uses a MS Access DB to store my application data (in a .mdb - local database - file). I would like to : - protect the DB integrity by encrypting it or at least hiding that it's a MS Access DB to the user (renaming the .mdb to .dat is not enough) - try different DB engine to handle the file, even if it's not a MS Access one anymore - handle the local DB with NO server running (can't do it with MySQL++ for example, see below) I'm not a DB expert so I don't know much about DB engines and Visual DB managers. What do you guys use as a DB engine ? Actually here's a list of the following DB engines or systems I want to try or already know : - MS Access : can't design my DB and handle it from my app, everything is "perfect" but I want to try new things... And I don't know how to encrypt its data or protect it from the users - Visual FoxPro : It's part of my MSDev 6 Pro package but never really gave it a try. It sounds like an other MS Access to me... What are the main differences ? Maybe I can easily protect my DB integrity with it... Does anyone know or use Visual FoxPro ? - CodeBase : DB engine that supports tons of IDEs and languages ! If you know it or use it, what do you think of CodeBase ? - MSDE : someone adviced me to use MSDE but It's part of MS SQL Server 2000, It seems that I can't download it from the MSDN website, it's not MSDev 6 compliant (only supported by .NET). Note that I can't affort MS SQL Server 2000, far far too expensive and I don't need such a DBMS for my the softwares I develop - MySQL : I really like MySQL because I also develop web based applications, however I have to connect to a "host" in order to access the DB, I can't connect to a file with ADO or MySQL++ (MySQL C/C++ API)... - XML Database : for small DB I thought It could be nice to use a DB engine that uses XML files (manage a configuration file, address book...), what do you think ? Do you know of any good API ? Kind regards, JM. Molina Europe > France > Lyon

    A 1 Reply Last reply
    0
    • J Jean Marc Molina

      Hello, I develop a desktop application with MS VC++ 6/MFC/ADO that uses a MS Access DB to store my application data (in a .mdb - local database - file). I would like to : - protect the DB integrity by encrypting it or at least hiding that it's a MS Access DB to the user (renaming the .mdb to .dat is not enough) - try different DB engine to handle the file, even if it's not a MS Access one anymore - handle the local DB with NO server running (can't do it with MySQL++ for example, see below) I'm not a DB expert so I don't know much about DB engines and Visual DB managers. What do you guys use as a DB engine ? Actually here's a list of the following DB engines or systems I want to try or already know : - MS Access : can't design my DB and handle it from my app, everything is "perfect" but I want to try new things... And I don't know how to encrypt its data or protect it from the users - Visual FoxPro : It's part of my MSDev 6 Pro package but never really gave it a try. It sounds like an other MS Access to me... What are the main differences ? Maybe I can easily protect my DB integrity with it... Does anyone know or use Visual FoxPro ? - CodeBase : DB engine that supports tons of IDEs and languages ! If you know it or use it, what do you think of CodeBase ? - MSDE : someone adviced me to use MSDE but It's part of MS SQL Server 2000, It seems that I can't download it from the MSDN website, it's not MSDev 6 compliant (only supported by .NET). Note that I can't affort MS SQL Server 2000, far far too expensive and I don't need such a DBMS for my the softwares I develop - MySQL : I really like MySQL because I also develop web based applications, however I have to connect to a "host" in order to access the DB, I can't connect to a file with ADO or MySQL++ (MySQL C/C++ API)... - XML Database : for small DB I thought It could be nice to use a DB engine that uses XML files (manage a configuration file, address book...), what do you think ? Do you know of any good API ? Kind regards, JM. Molina Europe > France > Lyon

      A Offline
      A Offline
      andyharman
      wrote on last edited by
      #2

      MS-Access does provide encryption. Choose "Tools->Security->Encrypt/Decrypt Database" from the main menu. I know at least one major bank that uses Access in this way. You should be able to find a copy of MSDE on the Microsoft Office-2000 installation CDs (its not installed by default). MSDE is basically a stripped-down version of SQL-Server. I have a copy installed on my kids' Windows 98 box. The main problem is that no administration program is provided (like SQL-Server's Enterprise Manager). However, there are freeware program available that replicate much of this functionality for you. Note that MSDE is implemented as a server process (just like SQL-Server) - so this may rule it out as an option for you. If you are not storing much data then you might take a look at ADO presisted-recordsets. These are written to you PC's disk as an XML file. The main problem with this (and XML in general) is that the files are not encrypted. For more complicated XML, you would probably use Microsoft's MSXML component. Hope this helps. Andy

      J 1 Reply Last reply
      0
      • A andyharman

        MS-Access does provide encryption. Choose "Tools->Security->Encrypt/Decrypt Database" from the main menu. I know at least one major bank that uses Access in this way. You should be able to find a copy of MSDE on the Microsoft Office-2000 installation CDs (its not installed by default). MSDE is basically a stripped-down version of SQL-Server. I have a copy installed on my kids' Windows 98 box. The main problem is that no administration program is provided (like SQL-Server's Enterprise Manager). However, there are freeware program available that replicate much of this functionality for you. Note that MSDE is implemented as a server process (just like SQL-Server) - so this may rule it out as an option for you. If you are not storing much data then you might take a look at ADO presisted-recordsets. These are written to you PC's disk as an XML file. The main problem with this (and XML in general) is that the files are not encrypted. For more complicated XML, you would probably use Microsoft's MSXML component. Hope this helps. Andy

        J Offline
        J Offline
        Jean Marc Molina
        wrote on last edited by
        #3

        Hi Andy, MS-Access does provide encryption. Choose "Tools->Security->Encrypt/Decrypt Database" from the main menu. I know at least one major bank that uses Access in this way. I know I can encrypt my DB. I also protect it with a password. I can't believe the passwords are not even encrypted if the DB is not encrypted too... If the DB is only encrypted, users can read it with MS Access and I don't want them to. If the DB is encrypted and password protected, they can't read it anymore... Unless they use one of the dozen of "password recovery tools" you can get everywhere on the web. Which means my DB is not protected at all. What really worries me, it's that they can retrieve my DB password. It's unreadable... first... my application connects to it using a password... But when the user uses a password recovery tool on it, they get the DB password AND users passwords. Passwords I would use for all my DBs, accounts... My solution would be to release a special DB, protected by a "dummy" password (only known by the application), with a special user account that has read and write access to the DB, tables... But It requires a lot of modifications and messes up my all release process. You should be able to find a copy of MSDE on the Microsoft Office-2000 installation CDs (its not installed by default). MSDE is basically a stripped-down version of SQL-Server. I have a copy installed on my kids' Windows 98 box. The main problem is that no administration program is provided (like SQL-Server's Enterprise Manager). However, there are freeware program available that replicate much of this functionality for you. Note that MSDE is implemented as a server process (just like SQL-Server) - so this may rule it out as an option for you. Alas! I can't use MSDE. Moreover I am sure there's somekind of perfect security system for MSSQL DB. If you are not storing much data then you might take a look at ADO presisted-recordsets. These are written to you PC's disk as an XML file. The main problem with this (and XML in general) is that the files are not encrypted. For more complicated XML, you would probably use Microsoft's MSXML component. There are hundreds of APIs and XML-DBMS and I don't really know which one to pick... The Apache one sounds like a good choice to me. About security, I am sure that some of the XML DBs have a security layer. Decrypt Database Did you ever tried to Decrypt a MS Access DB ? If I exclusively open an encrypted MS Access DB, when I select Encrypt/Decrypt, it does

        A 1 Reply Last reply
        0
        • J Jean Marc Molina

          Hi Andy, MS-Access does provide encryption. Choose "Tools->Security->Encrypt/Decrypt Database" from the main menu. I know at least one major bank that uses Access in this way. I know I can encrypt my DB. I also protect it with a password. I can't believe the passwords are not even encrypted if the DB is not encrypted too... If the DB is only encrypted, users can read it with MS Access and I don't want them to. If the DB is encrypted and password protected, they can't read it anymore... Unless they use one of the dozen of "password recovery tools" you can get everywhere on the web. Which means my DB is not protected at all. What really worries me, it's that they can retrieve my DB password. It's unreadable... first... my application connects to it using a password... But when the user uses a password recovery tool on it, they get the DB password AND users passwords. Passwords I would use for all my DBs, accounts... My solution would be to release a special DB, protected by a "dummy" password (only known by the application), with a special user account that has read and write access to the DB, tables... But It requires a lot of modifications and messes up my all release process. You should be able to find a copy of MSDE on the Microsoft Office-2000 installation CDs (its not installed by default). MSDE is basically a stripped-down version of SQL-Server. I have a copy installed on my kids' Windows 98 box. The main problem is that no administration program is provided (like SQL-Server's Enterprise Manager). However, there are freeware program available that replicate much of this functionality for you. Note that MSDE is implemented as a server process (just like SQL-Server) - so this may rule it out as an option for you. Alas! I can't use MSDE. Moreover I am sure there's somekind of perfect security system for MSSQL DB. If you are not storing much data then you might take a look at ADO presisted-recordsets. These are written to you PC's disk as an XML file. The main problem with this (and XML in general) is that the files are not encrypted. For more complicated XML, you would probably use Microsoft's MSXML component. There are hundreds of APIs and XML-DBMS and I don't really know which one to pick... The Apache one sounds like a good choice to me. About security, I am sure that some of the XML DBs have a security layer. Decrypt Database Did you ever tried to Decrypt a MS Access DB ? If I exclusively open an encrypted MS Access DB, when I select Encrypt/Decrypt, it does

          A Offline
          A Offline
          andyharman
          wrote on last edited by
          #4

          The "dummy" password solution seems to work just fine. However, I am a contract programmer, so I've only have to show that I have taken sufficient steps to put security in place. As far as password recovery tools go, I would advise that you use a strong password that doesn't appear in the dictionary. I never had to decrypt the MS-Access database. However, Microsoft provides a program named "JetComp.exe" on their support web-site. Normally I use it to fix MS-Access databases that have got seriously corrupted. If anything could decrypt your database it would be that program. I don't have any real preferences for databases. I've used quite a few different ones (I tend to use what my clients ask for). My personal preference is not to use MS-Access (network performance sucks and it is fairly easy to corrupt the database files). You might want to consider Sybase's ASA database (used to be called SQL-Anywhere). Hope this helps. Andy

          1 Reply Last reply
          0
          Reply
          • Reply as topic
          Log in to reply
          • Oldest to Newest
          • Newest to Oldest
          • Most Votes


          • Login

          • Don't have an account? Register

          • Login or register to search.
          • First post
            Last post
          0
          • Categories
          • Recent
          • Tags
          • Popular
          • World
          • Users
          • Groups