prevent execution of packages?

  • Due to Sarbanes-Oxley requirements, we've implemented a fairly strict separation of duties between developers and administrators; on a production server we want our dev folks to have read-only access to databases, but no ability to edit data or DTS packages.  We just discovered today, however, that there is nothing preventing them from running DTS packages manually from EM.  Outside of setting a password on every single package, is there any more manageable way to control execution access on these packages?  Internal package security is generally via SQL authentication.  I suppose another option would be to insert an initial step requiring adequate Windows authentication to proceed, but that's a huge hassle too.   Any ideas - the simpler the better - would be appreciated.

     

    Thanks

    Jeff

  • I haven't found anything yet that prevents execution of packages other than the password options. I would be very interested if someone does have a simple solution to this also.

    Good Luck.

  • Would preventing access to MSDB not accompish this?



    Shamless self promotion - read my blog http://sirsql.net

  • Nicholas Cain: "Would preventing access to MSDB not accompish this?"

    Possibly not.  A DTS packags can be executed by a SQL Agent Job, and the SQL Agent Job can be given an owner of "sa".  So, when the DTS package is executed, it is executed under the context of "sa".

     

  • However if you prevent access to MSDB the user will not be able to see the jobs, or start them.



    Shamless self promotion - read my blog http://sirsql.net

  • cant you run a profiler trace on users or certain people, whom you suspect of doing so. And if you catch them, then fire them?

  • That's the dream of all DBA's everywhere....



    Shamless self promotion - read my blog http://sirsql.net

  • Journeyman: cant you run a profiler trace on users or certain people, whom you suspect of doing so. And if you catch them, then fire them?

     

    The only problem is, that's after the fact.  If someone gets in and screws things up accidentally, or does it on purpose not caring if he gets caught, then the damage is already done.  It's like a security camera in a 7-11: fine for helping to catch robbers and shooters, but not so good at keeping them out.  You want to prevent them from getting in in the first place.

     

  • This isn't to try to catch somebody in the act; often developers will just overstep for the sake of convenience; due to SOX we have to prevent them from doing so.

    It sounds like denying MSDB access is the way to prevent access to jobs, but nothing (short of passwords) will prevent package access.  That's annoying.  I don't want to have to manage any more passwords.

  • Jeff,

    given that the packages are stored within MSDB, preventing MSDB access will also prevent package access.



    Shamless self promotion - read my blog http://sirsql.net

  • I have a problem with "If someone gets in and screws things up accidentally, or does it on purpose not caring if he gets caught.."

    To prevent things to happen accidently, developers should try it first on Dev/Staging Servers. And if it done on purpose then you might need to replace HR dept, who hires those people at the first place. We have hundred of developers in my company amd I never heard that anyone does smth on purpose!

    And if something bad really happen you could always restore from the last good backup (full/diff/tran log). You do it on the regular basis, right?

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

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