Ранее я рекомендовал интегрировать SQL Server Profiler в процесс модульного тестирования. Обычно специалисты по ИТ считают Profiler инструментом администрирования баз данных (DBA), но в моей статье отмечалась масса преимуществ, которые приносит разработчикам использование Profiler. Я получил много одобрительных отзывов, но среди сообщений были, например, и такие: "Мне понравилась ваша статья о предоставлении разработчикам права запускать Profiler в процессе проектирования, но я - администратор БД, и одновременно занимаюсь разработкой и контролем качества. Я понимаю, что для запуска Profiler необходимы полномочия sa, но это требование исключает Profiler из процесса разработки. Как вы думаете, могут ли и будут ли разработчики SQL Server в Microsoft делать что-то с полномочиями sa для Profiler? Я покажу вашу статью моему руководителю, но он считает, что если разработчикам нужно запускать Profiler, то делать это должны администраторы БД. Полагаю, вы понимаете, какими будут последствия, если каждому разработчику внезапно потребуется выполнить трассировку".
Я согласен, что специалисты Microsoft допустили ошибку, потребовав наличия полномочий sa для запуска Profiler. К счастью, в SQL Server 2005 они должны устранить проблему, и пользователи смогут запускать инструмент без полномочий sa. Однако планы Microsoft на пользователей SQL Server 2000 не распространяются, а это не поможет решить проблему сейчас.
До выхода SQL Server 2005 остается почти год, и многие предприятия продолжат использовать SQL Server 2000 в течение многих лет после выпуска SQL Server 2005.
Но вернемся к комментарию читателя. У компаний, занимающихся разработкой, есть все основания запретить доступ sa всем, кроме нескольких администраторов БД. Предположим, мы все пришли к согласию относительно преимуществ запуска Profiler разработчиками, но администратор не желает предоставлять им доступ с единственной целью запуска Profiler. Какие действия может предпринять администратор, чтобы позволить разработчикам интегрировать Profiler в процесс проектирования и тестирования? Разработчикам можно предоставить полномочия sa для экземпляров SQL Server, установленных на локальных машинах. Многие тесты можно провести на локальных экземплярах SQL Server. Имеет смысл также развернуть "безопасные для разработки" экземпляры SQL Server на машинах, выделенных специально для разработки и тестирования. Восстанавливать такие машины с резервных копий (возможно, с журналами) нетрудно, и разработчикам можно предоставить на них все полномочия. Эти компьютеры никогда не будут использоваться для рабочего программного кода, поэтому предоставление разработчикам полномочий sa связано с минимальным риском.
Данный метод требует некоторой административной поддержки, и для дополнительных экземпляров придется приобретать дополнительные лицензии. Но Profiler слишком важен, чтобы лишать разработчиков полномочий для работы с ним, когда это нецелесообразно и небезопасно. Читатель пишет, что руководитель требует, чтобы разработчики просили администратора БД выполнять трассировку за них, но на практике такая модель для крупных проектов не подходит. Я убежден, что расходы и риск, связанные с отказом от использования Profiler, значительно перевешивают опасность предоставления разработчикам полномочий sa в контролируемой среде.
Брайан Моран - Президент группы пользователей и директор по технологиям СУБД Spectrum Technology Group. Имеет сертификаты MCSE, MCSD и MCT. Ему можно написать по адресу: brian@spectrumtech.com.