Database Implementation Question

  • Hi Everyone, I am hoping somebody on this board can help me decide  

    
    
    Here's my challenge.
    I am developing a custom C# windows application that will be distributed on a retail level. 
    The users will be creating lots of data and be searching,updating etc. 
    They will be excuting some intense custom configurable reports etc.
    I would like the data storage aspect to be transparent to the user and I do not want them 
    to be able to see my database schema as it is quite original.
    My question is I am not sure what database to use as a backend db but I would like to use 
    MSDE2000 because I am familiar with SQL SERVER. My thinking is after time an Access2000 Database 
    will become bloated and slow.

     

  • As Adi said, you can't stop someone with SQL Server sysadmin privileges from viewing your schema.

    However, as this and the whole app will be your intellectual property you might sue a violator for damages and/or lost profit.

    Btw, IIRC you can't lock down Access either.

    --
    Frank Kalis
    Microsoft SQL Server MVP
    Webmaster: http://www.insidesql.org/blogs
    My blog: http://www.insidesql.org/blogs/frankkalis/[/url]

  • You CAN "lock down" MSDE.

    1)  Install MSDE into it's own instance.  You probably want to name the instance with your product or company name, so someone can tie it back to your application. 

    2) Put in a strong SA password.

    3) Especially if you're application will be on the same machine as the MSDE install, install with the DISABLENETWORKPROTOCOLS=1 to "hide" the instance.  This way, SQL Server Manager or Enterprise Manager console will not see the instance when browsing (although a smart admin can still attempt to connect by typing in the machinename\instancename).

    4) Once installed, use SQLDMO and remove the Builtin\Administrators group.

    However, a smart determined administrator can still get your database, by shutting down the MSSQL$<instancename> service, then copying your mdf file to his own SQL Server instance and attaching it there.  But this should stop all but the most dedicated admins from getting your database.



    Mark

  • For Security Purposes Access is superior to MSDE 2000. Period!

    The Fact that the mdf can be grabbed and attached somewhere else makes MSDE usless for YOUR purposes!

     


    * Noel

  • Thank everybody for your responses Here is a few more questions LOL!

    1) What if I shut down the service programmically when the application closes. Then I could use a third party tool to encrypt the mdf file while the application isn't running.

    OR

    2) I could use XML files as the data storage instead and encrypt them? Would there be a performance issue for large xml files?

     

    Thanks again for all the help

  • 1. What if the USER  KILL you App. Stop the service and grabs the FILE

    2. Performance and XML is an oximoron!!!

     


    * Noel

  • Access superior in some way to anything! Really?  I didn't even know that Access had anything that could be called security.

    Unless that password stuff is being referred to as security.  I've occasionally been asked what can be done with access databases that were password protected and someone forgot the password.  It usually takes about 1 minute (on a slow machine) to crack. 

     

    MSDE's advantage is its free but you can't use it for more that 5 simultaneous connections.  I agree XML is probably not a great performer.  You may need to think about both security and performance.  MSDE has limitations as to how big the database can be as well.  In my opinion Access is usefull for a single user on a single workstation.  MSDE is good for small databases with < 5 concurrent users.  Otherwise SQL Server may need to be reconsidered.  XML is great for tranferring info from some system to another but not so good as a multi-user data store.  Just my 2 cents.

     

    Francis

  • For the purpose of comparison you DON'T NEED anything to grab the mdf files !!!! 


    * Noel

  • The database will only have 1 user, but will have a Pocket PC "sister app" that will be using SQL Server CE.

    I guess MSDE is my best choice only because of the performance. My experience tells me that once access database get big they slow conciderably. I am not sure how to get around that since the purpose of the app is to work with historical data entered by the user.

    Thank you everyone for the help! If anybody comes up with a third party option I would really be interested in hearing about it.

  • Access superior in some way to anything! Really?  I didn't even know that Access had anything that could be called security.

    Unless that password stuff is being referred to as security.  I've occasionally been asked what can be done with access databases that were password protected and someone forgot the password.  It usually takes about 1 minute (on a slow machine) to crack. 

    Ok, Access has some sort of security which is always present but needs to be explicitely turned on. IIRC, there is a thing called system.mdw or system.mda. But there are two sides of security. One is to protect your intellectual property, the other is the security of the data. For the former there are laws, for the latter choose not Access.

    Just my $0.02

    --
    Frank Kalis
    Microsoft SQL Server MVP
    Webmaster: http://www.insidesql.org/blogs
    My blog: http://www.insidesql.org/blogs/frankkalis/[/url]

Viewing 10 posts - 1 through 9 (of 9 total)

You must be logged in to reply to this topic. Login to reply