修改MSDB存储过程的好习惯?

时间:2010-08-27 21:09:46

标签: sql-server tsql sql-server-2008

在工作中,我们现在正在研究SQL Server 2008,而我的老板似乎对安全性有点偏执,所以不是让人们成为系统管理员(或者他们需要拥有/修改工作的任何东西),他一直在编辑存储在MSDB中的proc(例如sp_update_job)并向TSQL添加一个检查所需权限的角色(例如添加SqlAgentOperatorRole)。我的直觉告诉我这不是正确的做法,但我在网上找不到任何说明这是不好的做法,所以我很好奇SQL Server的人在这个问题上有什么经验。

3 个答案:

答案 0 :(得分:3)

如果你的老板是管理角色而不是开发人员,他不应该编辑sps或编写TSQL,而是批准你的安全培训请求。

答案 1 :(得分:2)

改变系统触发总是一个坏习惯。如果您要上传新版本,则可能会覆盖更改。如果您更改了这些内容并且这是导致问题的原因,我相信您也可能会遇到供应商支持问题。它甚至可能会使您的某些产品无效。

答案 2 :(得分:1)

曾几何时,我修改了SQL 2000维护计划系统以使用SQL LiteSpeed并支持差异备份。这需要(我认为)修改msdb中的一些系统过程和表。这样做让我变得偏执,因为微软提供的任何后续补丁或服务包都会破坏我的代码(我遇到麻烦),或者我的代码会破坏他们的服务包(我=死肉)。为了解决这个问题,我对所做的工作进行了细致的记录,并保留了经过全面测试的回滚脚本,这样当SP(不是如果)发布时,我可以将服务器恢复到先前的状态,修补它们,然后重新应用我的更改,根据需要调整我的代码。我完全控制了受影响的系统,并且从未遇到任何严重的设置问题。

如果你小心谨慎并且提前做好计划,你就可以逃脱这样的特技。但是......维护计划是一个可爱的侧灯,而且很容易破解,而安全是一罐硝化甘油,坐在放射性废物池中。它可以做到,但我真的不想惹它。