права на хранимые процедуры

denydatawriter
Дата: 12.02.2013 16:52:16
Завел логин с правами datareader и denydatawriter. Отматил на базу данных.

Дал логину права GRANT VIEW ANY DEFINITION TO login

После чего в студии при открытии хранимых процедур выскакивает ошибка

The SELECT permission was denied on the object 'sysobjects', database 'mssqlsystemresource', schema 'sys'

Если убираю denydatawriter, все работает. Как бы обойти эту проблему?
Glory
Дата: 12.02.2013 16:55:48
denydatawriter
Дал логину права GRANT VIEW ANY DEFINITION TO login

Зачем ANY DEFINITION, если права нужны в конкретной базе ?

denydatawriter
Если убираю denydatawriter, все работает. Как бы обойти эту проблему?

Зачем denydatawriter, если не разрешено писать куда-либо ?
denydatawriter
Дата: 12.02.2013 16:59:04
Glory, первый вопрос согласен. Второй - зачем вообще denydatawriter тогда нужна?
Гавриленко Сергей Алексеевич
Дата: 12.02.2013 17:01:39
Для того же, для чего нужен deny наряду с grant.
Glory
Дата: 12.02.2013 17:02:24
denydatawriter
Второй - зачем вообще denydatawriter тогда нужна?

Зачем нужны роли ?
Чтобы легче было манипулировать правами.
denydatawriter
Дата: 12.02.2013 17:10:00
Glory
denydatawriter
Второй - зачем вообще denydatawriter тогда нужна?

Зачем нужны роли ?
Чтобы легче было манипулировать правами.


Интересный эффект, убираю VIEW ANY DEFINITION и denydatawriter, оставляю только datareader. Пользователь видит хранимые процедуры.

Как-то нелогично получается, я добавляю роль denydatawriter и пропадают права на просмотр процедур.
Glory
Дата: 12.02.2013 17:12:52
denydatawriter
Как-то нелогично получается, я добавляю роль denydatawriter и пропадают права на просмотр процедур.

Т.е. если пользователь получил права на что-то через одну роль, а потом запрет, но через другую роль, то он по-прежнему должен иметь права ? Или нет ?
denydatawriter
Дата: 12.02.2013 17:17:15
Glory
denydatawriter
Как-то нелогично получается, я добавляю роль denydatawriter и пропадают права на просмотр процедур.

Т.е. если пользователь получил права на что-то через одну роль, а потом запрет, но через другую роль, то он по-прежнему должен иметь права ? Или нет ?


Конечно нет, если есть запрет, он имеет приоритет. Однако каким образом роль denydatawriter запрещает пользователю видеть хранимые процедуры? Пользователь же их только читает.
Гость333
Дата: 12.02.2013 17:20:47
denydatawriter
Завел логин с правами datareader и denydatawriter

Что за права такие? Если вы про db_datareader и db_denydatawriter, то это роли БД. Непонятно, как можно "завести логин" с такими правами.
Glory
Дата: 12.02.2013 17:21:25
denydatawriter
Однако каким образом роль denydatawriter запрещает пользователю видеть хранимые процедуры?Пользователь же их только читает.

И какую команду ваш пользователь отправляет серверу, чтобы "видеть хранимые процедуры" ?