Назад | Перейти на главную страницу

Есть ли в SQL Server роль средства просмотра DDL?

У меня есть пользователь с ролью db_datareader в SQL Server 2008. Мне нужно, чтобы этот пользователь мог видеть хранимые процедуры, функции, скрипты таблиц и т. Д.

Какая это роль? Я не хочу, чтобы пользователь запускал сценарии DDL (изменял таблицы или процедуры). Я просто хочу, чтобы пользователь мог читать что угодно в базе данных.

Спасибо!

Вы ищете VIEW DEFINITION.

Вы можете предоставить принципалу VIEW DEFINITION в различных областях (сервер, база данных, схема, конкретный объект).

Пример хранимой процедуры:

Use MyDB
GRANT VIEW DEFINITION ON p_MyProc TO SomeUser

Для всех объектов в базе данных:

Use MyDB
GRANT VIEW DEFINITION TO SomeUser

Для всех объектов на сервере:

USE master
GRANT VIEW ANY DEFINITION TO SomeUSer

Примечание: при предоставлении разрешений на уровне сервера участник должен также иметь доступ на уровне базы данных, чтобы просматривать определения в базе данных.