Большинство моих коллег-друзей-знакомых администрируют базы данных, поэтому для них вполне естественно подключаться к БД с максимальными правами DBA. В то же время, Embarcadero DB Optimizer могут с успехом применять и разработчики программного обеспечения, предназначенного работать на стороне сервера БД. Написав сложную процедуру, триггер или запрос на SQL они сразу могут проверить, насколько это работает производительно и эффективно, провести тестирование работоспособности кода под планируемой или максимальной нагрузкой еще до того, как это программное обеспечение попадет в "боевую" систему. С одной стороны, программисту-разработчику не нужен уровень привилегий системного администратора БД, с другой - это даже опасно: программеры люди настолько творческие, что им ничего не стоит сделать из БД "черный квадрат супрематизма" из самых лучших гуманистических побуждений.
Embarcadero DB Optimizer Profiling
Недавно мне был задан вопрос: какими минимально достаточными привилегиями должен обладать пользователь MS SQL Server, чтобы он смог проводить профилирование его работы при помощи DB Optimizer?
В руководстве пользователя есть перечень требований, где сказано:
необходимые привилегии:
Для любого сервера уровня SYSADMIN достаточно.
Можно ли снизить этот уровень?
Для MS SQL 2000 пользователь должен входить в SYSADMIN - никаких других вариантов.
Для 2008 and 2005 достаточно иметь права "VIEW SERVER STATE" и "SELECT" на любую БД или объект.
Затруднение понимания вызывает именно последнее: права "SELECT".
Ответ прост: DB Optimizer для профилирования требуются права на чтение из master. Надо дать этому логину master, как дефолтную БД и права на SELECT к любому объекту какой-нибудь базы.
И конечно, права на CONNECT