На работе мы сейчас работаем над SQL Server 2008, и мой босс выглядит немного параноиком по поводу безопасности, поэтому вместо того, чтобы люди были sysadmin (или что-то еще, что им нужно, чтобы владеть/изменять задания), он редактировал сохраненные procs в MSDB (например, sp_update_job) и добавление роли в TSQL, который проверяет наличие необходимых разрешений (например, добавление SqlAgentOperatorRole). Моя кишка говорит мне, что это неправильная вещь, но я ничего не могу найти в Интернете, заявив, что это плохая практика, поэтому мне любопытно, что люди из SQL Server должны сказать по этому поводу.Хорошая практика для изменения хранимых процедур MSDB?
ответ
Ну, это всегда плохая практика для изменения системных процессов. Если бы вы загрузили новую версию, изменения вполне могли бы быть перезаписаны. Я считаю, что у вас также может быть проблема с поддержкой поставщиков, если вы изменили эти вещи, и это является причиной вашей проблемы. Это может даже аннулировать ваш liscense с некоторыми продуктами.
Если ваш босс находится в роли управления, а не является одним из разработчиков, он не должен редактировать SPS или писать TSQL, но одобряет ваш запрос на дополнительное обучение по безопасности.
Когда-то я модифицировал систему планирования SQL 2000, чтобы использовать SQL LiteSpeed и поддерживать дифференциальные резервные копии. Это потребовало (я думаю) изменения нескольких системных процедур и таблиц в msdb. Это сделало меня параноидальным, поскольку любой последующий патч или пакет обновления, предоставленный Microsoft, либо сломают мой код (я = в большой беде), либо мой код сломает их пакет обновления (me = dead meat). Чтобы справиться с этим, я продолжил тщательные записи о том, что я сделал, и поддерживал тщательно проверенный сценарий отката, так что когда (а не если) SP были выпущены, я мог бы кулаком вернуть серверы в их прежнее состояние, исправить их, а затем повторно примените мои изменения, скорректировав мой код, если и при необходимости. У меня был полный контроль над затронутыми системами и у меня не было серьезных проблем с настройкой.
Если вы осторожны и осторожны, и вы планируете заранее, вы можете уйти от трюков, подобных этому. Но ... Планы обслуживания были милым боковым светом и довольно просто взломали, в то время как безопасность - это сосуд из нитроглицерина, который сидит в пуле радиоактивных отходов. Это можно сделать, но я действительно не хотел бы возиться с ним.
«баночка нитроглицерина, сидящая в бассейне с радиоактивными отходами» Какой прекрасный оборот фразы. – HLGEM
- 1. Использование хранимых процедур MSDB в хранимой процедуре базы данных приложения
- 2. Шаблоны для хранимых процедур?
- 3. Наилучшая практика/шаблон хранимых процедур Multi-Criteria
- 4. Передовая практика обработки ошибок обработки хранимых процедур
- 5. Реестр версий/хранимых процедур для хранимых процедур и представлений SqlServer
- 6. Выполнение хранимых процедур в Parallel
- 7. хранимых процедур
- 8. Это хорошая практика для изменения идентификаторов html?
- 9. Создание ложных хранимых процедур
- 10. Тестирование хранимых процедур
- 11. Ищите лучшие практики для проверки хранимых процедур?
- 12. подходит для сборки серверов и хранимых процедур
- 13. Оптимизация хранимых процедур Oracle
- 14. Динамический параметр для хранимых процедур
- 15. Хороший ресурс для хранимых процедур
- 16. Сценарий для записи хранимых процедур
- 17. Использование хранимых процедур для вычислений
- 18. Передача параметров для хранимых процедур
- 19. Создайте SQL-скрипт для создания или изменения табличных/хранимых процедур
- 20. Изменения ANSI_NULLS настройки для всех хранимых процедур в базе данных
- 21. Отображение хранимых процедур объекта?
- 22. Форматирование хранимых процедур
- 23. Отладка хранимых процедур MySQL
- 24. цикл внутри хранимых процедур
- 25. Тестирование логики хранимых процедур
- 26. хранимых процедур в postgresql
- 27. Дело против хранимых процедур?
- 28. Анализ хранимых процедур SQL
- 29. Фильтрация хранимых процедур
- 30. Mysql - Создание хранимых процедур
Не могли бы вы рассказать о том, что сделал ваш босс - что было сделано, например, sp_update_job? –
(извините, форматирование отстой) 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