DB Optimizer: свобода - осознанная необходимость

Posted by on in Blogs
Большинство моих коллег-друзей-знакомых  администрируют базы данных, поэтому для них вполне естественно подключаться к БД с максимальными правами DBA. В то же время, Embarcadero DB Optimizer могут с успехом применять и разработчики программного обеспечения, предназначенного работать на стороне сервера БД. Написав сложную процедуру, триггер или запрос на SQL они сразу могут проверить, насколько это работает производительно и эффективно, провести тестирование работоспособности кода под планируемой или максимальной нагрузкой еще до того, как это программное обеспечение попадет в "боевую" систему. С одной стороны, программисту-разработчику не нужен уровень привилегий системного администратора БД, с другой - это даже опасно: программеры люди настолько творческие, что им ничего не стоит сделать из БД "черный квадрат супрематизма" из самых лучших гуманистических побуждений.
[caption id="attachment_192" align="alignright" width="300" caption="Embarcadero DB Optimizer Profiling"]Embarcadero DB Optimizer Profiling[/caption]

Недавно мне был задан вопрос: какими минимально достаточными привилегиями должен обладать пользователь MS SQL Server, чтобы он смог проводить профилирование его работы при помощи DB Optimizer?


В руководстве пользователя есть перечень требований, где сказано:
необходимые привилегии:
Для любого сервера уровня SYSADMIN достаточно.


Можно ли снизить этот уровень?

Для MS SQL 2000 пользователь должен входить в SYSADMIN - никаких других вариантов.

Для 2008 and 2005 достаточно иметь права 'VIEW SERVER STATE' и 'SELECT' на любую БД или объект.

Затруднение понимания вызывает именно последнее: права 'SELECT'.
Ответ прост: DB Optimizer для профилирования требуются права на чтение из master. Надо дать этому логину master, как дефолтную БД и права на SELECT к любому объекту какой-нибудь базы.

И конечно,  права на CONNECT :)


About
Gold User, Rank: 11, Points: 295
SC at Embarcadero. DB Tools expert Delphi practitioner

Comments

Check out more tips and tricks in this development video: