Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 права на хранимые процедуры  [new]
denydatawriter
Guest
Завел логин с правами datareader и denydatawriter. Отматил на базу данных.

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

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

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

Если убираю denydatawriter, все работает. Как бы обойти эту проблему?
12 фев 13, 16:52    [13915327]     Ответить | Цитировать Сообщить модератору
 Re: права на хранимые процедуры  [new]
Glory
Member

Откуда:
Сообщений: 104760
denydatawriter
Дал логину права GRANT VIEW ANY DEFINITION TO login

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

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

Зачем denydatawriter, если не разрешено писать куда-либо ?
12 фев 13, 16:55    [13915354]     Ответить | Цитировать Сообщить модератору
 Re: права на хранимые процедуры  [new]
denydatawriter
Guest
Glory, первый вопрос согласен. Второй - зачем вообще denydatawriter тогда нужна?
12 фев 13, 16:59    [13915383]     Ответить | Цитировать Сообщить модератору
 Re: права на хранимые процедуры  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37051
Для того же, для чего нужен deny наряду с grant.
12 фев 13, 17:01    [13915404]     Ответить | Цитировать Сообщить модератору
 Re: права на хранимые процедуры  [new]
Glory
Member

Откуда:
Сообщений: 104760
denydatawriter
Второй - зачем вообще denydatawriter тогда нужна?

Зачем нужны роли ?
Чтобы легче было манипулировать правами.
12 фев 13, 17:02    [13915415]     Ответить | Цитировать Сообщить модератору
 Re: права на хранимые процедуры  [new]
denydatawriter
Guest
Glory
denydatawriter
Второй - зачем вообще denydatawriter тогда нужна?

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


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

Как-то нелогично получается, я добавляю роль denydatawriter и пропадают права на просмотр процедур.
12 фев 13, 17:10    [13915463]     Ответить | Цитировать Сообщить модератору
 Re: права на хранимые процедуры  [new]
Glory
Member

Откуда:
Сообщений: 104760
denydatawriter
Как-то нелогично получается, я добавляю роль denydatawriter и пропадают права на просмотр процедур.

Т.е. если пользователь получил права на что-то через одну роль, а потом запрет, но через другую роль, то он по-прежнему должен иметь права ? Или нет ?
12 фев 13, 17:12    [13915476]     Ответить | Цитировать Сообщить модератору
 Re: права на хранимые процедуры  [new]
denydatawriter
Guest
Glory
denydatawriter
Как-то нелогично получается, я добавляю роль denydatawriter и пропадают права на просмотр процедур.

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


Конечно нет, если есть запрет, он имеет приоритет. Однако каким образом роль denydatawriter запрещает пользователю видеть хранимые процедуры? Пользователь же их только читает.
12 фев 13, 17:17    [13915512]     Ответить | Цитировать Сообщить модератору
 Re: права на хранимые процедуры  [new]
Гость333
Member

Откуда:
Сообщений: 3683
denydatawriter
Завел логин с правами datareader и denydatawriter

Что за права такие? Если вы про db_datareader и db_denydatawriter, то это роли БД. Непонятно, как можно "завести логин" с такими правами.
12 фев 13, 17:20    [13915536]     Ответить | Цитировать Сообщить модератору
 Re: права на хранимые процедуры  [new]
Glory
Member

Откуда:
Сообщений: 104760
denydatawriter
Однако каким образом роль denydatawriter запрещает пользователю видеть хранимые процедуры?Пользователь же их только читает.

И какую команду ваш пользователь отправляет серверу, чтобы "видеть хранимые процедуры" ?
12 фев 13, 17:21    [13915543]     Ответить | Цитировать Сообщить модератору
 Re: права на хранимые процедуры  [new]
denydatawriter
Guest
Гость333
denydatawriter
Завел логин с правами datareader и denydatawriter

Что за права такие? Если вы про db_datareader и db_denydatawriter, то это роли БД. Непонятно, как можно "завести логин" с такими правами.


Вы правы. db_datareader и db_denydatawriter относятся не к логину, а к пользователю БД. Логин имеет только роль Public
12 фев 13, 17:23    [13915560]     Ответить | Цитировать Сообщить модератору
 Re: права на хранимые процедуры  [new]
denydatawriter
Guest
Glory
denydatawriter
Однако каким образом роль denydatawriter запрещает пользователю видеть хранимые процедуры?Пользователь же их только читает.

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


Из management studio открывает плюс напротив хранимых процедур, и выпадает указанная ошибка The SELECT permission was denied on the object 'sysobjects', database 'mssqlsystemresource', schema 'sys'
12 фев 13, 17:24    [13915565]     Ответить | Цитировать Сообщить модератору
 Re: права на хранимые процедуры  [new]
Glory
Member

Откуда:
Сообщений: 104760
denydatawriter
Из management studio открывает плюс напротив хранимых процедур

Нужна команда, которую выполняет сервер. А не последовательность нажатия клавиш в клиентском приложении.
12 фев 13, 17:25    [13915570]     Ответить | Цитировать Сообщить модератору
 Re: права на хранимые процедуры  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37051
denydatawriter
Glory
пропущено...

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


Из management studio открывает плюс напротив хранимых процедур, и выпадает указанная ошибка The SELECT permission was denied on the object 'sysobjects', database 'mssqlsystemresource', schema 'sys'
SSMS - это тоже программа, которая общается с сервером командами, а не магией.
12 фев 13, 17:25    [13915575]     Ответить | Цитировать Сообщить модератору
 Re: права на хранимые процедуры  [new]
denydatawriter
Guest
Гавриленко Сергей Алексеевич
denydatawriter
пропущено...


Из management studio открывает плюс напротив хранимых процедур, и выпадает указанная ошибка The SELECT permission was denied on the object 'sysobjects', database 'mssqlsystemresource', schema 'sys'
SSMS - это тоже программа, которая общается с сервером командами, а не магией.


Я могу поставить трейс профайлером и поймать команду. Мне просто интересно, каким образом роль, запрещающая запись, мешает извлекать хранимые процедуры.
12 фев 13, 17:29    [13915609]     Ответить | Цитировать Сообщить модератору
 Re: права на хранимые процедуры  [new]
denydatawriter
Guest
Glory,

ОК, секундочку
12 фев 13, 17:29    [13915614]     Ответить | Цитировать Сообщить модератору
 Re: права на хранимые процедуры  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37051
denydatawriter
Гавриленко Сергей Алексеевич
пропущено...
SSMS - это тоже программа, которая общается с сервером командами, а не магией.


Я могу поставить трейс профайлером и поймать команду. Мне просто интересно, каким образом роль, запрещающая запись, мешает извлекать хранимые процедуры.
Магическим же.
12 фев 13, 17:30    [13915622]     Ответить | Цитировать Сообщить модератору
 Re: права на хранимые процедуры  [new]
denydatawriter
Guest
Странно, ошибка на новом логине не воспроизводится.

Первоначальная ошибка была, как описано тут

http://stackoverflow.com/questions/1473315/the-select-permission-was-denied-on-the-object-sysobjects-database-mssqlsyst

После отключение db_denydatawriter ситуация нормализовалась.
12 фев 13, 17:39    [13915699]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить