2010-08-27 4 views
2

На работе мы сейчас работаем над SQL Server 2008, и мой босс выглядит немного параноиком по поводу безопасности, поэтому вместо того, чтобы люди были sysadmin (или что-то еще, что им нужно, чтобы владеть/изменять задания), он редактировал сохраненные procs в MSDB (например, sp_update_job) и добавление роли в TSQL, который проверяет наличие необходимых разрешений (например, добавление SqlAgentOperatorRole). Моя кишка говорит мне, что это неправильная вещь, но я ничего не могу найти в Интернете, заявив, что это плохая практика, поэтому мне любопытно, что люди из SQL Server должны сказать по этому поводу.Хорошая практика для изменения хранимых процедур MSDB?

+0

Не могли бы вы рассказать о том, что сделал ваш босс - что было сделано, например, sp_update_job? –

+0

(извините, форматирование отстой) ex: изменение этого: - Только SA может повторно назначать задания IF ((ISNULL (IS_SRVROLEMEMBER (N'sysadmin '), 0) <> 1) AND (@owner_login_name IS NOT NULL)) RAISERROR (14242, -1, -1) : только SA может повторно назначать задания IF ((ISNULL (IS_SRVROLEMEMBER (N'sysadmin '), 0) <> 1) AND (@ owner_login_name IS NOT NULL) - добавляется ниже строки, чтобы позволить операторам изменять задания, которые они не имеют. И (ISNULL (IS_MEMBER (N'SQLAgentOperatorRole '), 0) <> 1)) RAISERROR (14242, -1, -1) – jamauss

ответ

2

Ну, это всегда плохая практика для изменения системных процессов. Если бы вы загрузили новую версию, изменения вполне могли бы быть перезаписаны. Я считаю, что у вас также может быть проблема с поддержкой поставщиков, если вы изменили эти вещи, и это является причиной вашей проблемы. Это может даже аннулировать ваш liscense с некоторыми продуктами.

3

Если ваш босс находится в роли управления, а не является одним из разработчиков, он не должен редактировать SPS или писать TSQL, но одобряет ваш запрос на дополнительное обучение по безопасности.

1

Когда-то я модифицировал систему планирования SQL 2000, чтобы использовать SQL LiteSpeed ​​и поддерживать дифференциальные резервные копии. Это потребовало (я думаю) изменения нескольких системных процедур и таблиц в msdb. Это сделало меня параноидальным, поскольку любой последующий патч или пакет обновления, предоставленный Microsoft, либо сломают мой код (я = в большой беде), либо мой код сломает их пакет обновления (me = dead meat). Чтобы справиться с этим, я продолжил тщательные записи о том, что я сделал, и поддерживал тщательно проверенный сценарий отката, так что когда (а не если) SP были выпущены, я мог бы кулаком вернуть серверы в их прежнее состояние, исправить их, а затем повторно примените мои изменения, скорректировав мой код, если и при необходимости. У меня был полный контроль над затронутыми системами и у меня не было серьезных проблем с настройкой.

Если вы осторожны и осторожны, и вы планируете заранее, вы можете уйти от трюков, подобных этому. Но ... Планы обслуживания были милым боковым светом и довольно просто взломали, в то время как безопасность - это сосуд из нитроглицерина, который сидит в пуле радиоактивных отходов. Это можно сделать, но я действительно не хотел бы возиться с ним.

+4

«баночка нитроглицерина, сидящая в бассейне с радиоактивными отходами» Какой прекрасный оборот фразы. – HLGEM

Смежные вопросы