DB security

  • Hi All,

    We have a SQL server 2005 db which we are going to deploy on customer's server(will be accessed by our application), we need to do the followings:

    1- Prevent customer from viewing the DB design, creating diagrams...etc.

    2- Encrypt all views, stored procedures (I know the SQL way can be decrypted, we need another way)

    Please note that the DB server belongs to customer, meaning the he has sa access, so i believe the sql permissions will not be useful here as he can revoke them using his sa account.

    Is there any other way or tool that can accomplish what we need.

    Thanks in advance.

    Sameh Hamza

  • sameh.hamza (3/7/2010)


    Hi All,

    We have a SQL server 2005 db which we are going to deploy on customer's server(will be accessed by our application), we need to do the followings:

    1- Prevent customer from viewing the DB design, creating diagrams...etc.

    2- Encrypt all views, stored procedures (I know the SQL way can be decrypted, we need another way)

    Please note that the DB server belongs to customer, meaning the he has sa access, so i believe the sql permissions will not be useful here as he can revoke them using his sa account.

    Is there any other way or tool that can accomplish what we need.

    Thanks in advance.

    Sameh Hamza

    If you cannot allow the customer to see the schema, if it is that confidential, then don't put it on their server. You won't be able to prevent them from seeing the schema.

    Jason...AKA CirqueDeSQLeil
    _______________________________________________
    I have given a name to my pain...MCM SQL Server, MVP
    SQL RNNR
    Posting Performance Based Questions - Gail Shaw[/url]
    Learn Extended Events

  • sameh.hamza (3/7/2010)


    1- Prevent customer from viewing the DB design, creating diagrams...etc.

    Not possible

    2- Encrypt all views, stored procedures (I know the SQL way can be decrypted, we need another way)

    The SQL engine has to be able to decrypt procs in order to execute them. Hence they will be decrypted somewhere and it's possible to get at the decrypted form.

    Is there any other way or tool that can accomplish what we need.

    Hosted server with restricted permissions or licensing agreements. If it's so confidential that viewing the table design will reveal secrets, the database should not be on their server, but should be hosted and monitored by you.

    Gail Shaw
    Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
    SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability

    We walk in the dark places no others will enter
    We stand on the bridge and no one may pass
  • Jason: The main idea is that the db is considered as part of the application deployment, it must be installed on client server but can't be changed or accessed by him, same as when we deploy the application he can't access the source code.

    Many thanks for your kind reply

    Sameh

  • Gail: Got your points, but as I mentioned in my previous post, keeping the db on our server is not an option and it must be deployed on customer's.

    Thanks

    Sameh

  • They you're going to have to depend on licensing and legalities. Once a SQL database is deployed to an instance outside of your control, all bets are off. A sysadmin has full permissions to every aspect of every database on the instance and that cannot be denied.

    Gail Shaw
    Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
    SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability

    We walk in the dark places no others will enter
    We stand on the bridge and no one may pass
  • GilaMonster (3/8/2010)


    They you're going to have to depend on licensing and legalities. Once a SQL database is deployed to an instance outside of your control, all bets are off. A sysadmin has full permissions to every aspect of every database on the instance and that cannot be denied.

    Take that one step further, the client can get access to sysadmin because the database is on their server. You can lock it down and prevent local admins - but that can still be circumvented. You don't have control over the box, you won't have control over the database.

    You will need to rely on the contract and legal measure for the database to try to secure it. You will also need to perform regular audits to ensure the contract is maintained and the database has not been altered.

    Jason...AKA CirqueDeSQLeil
    _______________________________________________
    I have given a name to my pain...MCM SQL Server, MVP
    SQL RNNR
    Posting Performance Based Questions - Gail Shaw[/url]
    Learn Extended Events

  • Many thanks guys for your valuable answers.

  • You're welcome.

    Jason...AKA CirqueDeSQLeil
    _______________________________________________
    I have given a name to my pain...MCM SQL Server, MVP
    SQL RNNR
    Posting Performance Based Questions - Gail Shaw[/url]
    Learn Extended Events

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

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