Как предоставить права выбора для представлений в SQL Server 2000? - PullRequest
0 голосов
/ 23 февраля 2011

У меня есть пользователь, которому я хочу предоставить доступ только для чтения к базе данных SQL Server 2000.Я поместил их в роль db_datareader, и они могут нормально выбирать из таблиц, но когда они пытаются выбрать из представления, всегда возвращаются 0 строк (представление возвращает строки при запуске от имени db_owner).

Как я могу предоставить этому пользователю доступ для чтения представлений, в то же время гарантируя, что они не смогут писать в базу данных?

Ответы [ 2 ]

1 голос
/ 23 февраля 2011

GRANT SELECT ON [viewname] TO [user или role_name]

должен распространяться на все объекты, на которые есть ссылки в представлении

0 голосов
/ 23 февраля 2011

У них есть права на представление, если они получают ноль строк. Они получат ошибку, если у них не будет прав.

Некоторый код в представлении фильтруется, например, в этом быстром примере:

WHERE SUSER_SNAME() = 'dbo' 

db_datareader на MSDN, мой жирный. Для SQL Server 2005.

Члены предопределенной роли базы данных db_datareader могут выполнять инструкцию SELECT для любой таблицы или представление в базе данных.

Для SQL Server 2000 : «Считывает все данные из всех пользовательских таблиц». что немного отличается. Я всегда думал, что это означало таблицы и представления, но у меня нет флажка SQL Server 2000 для проверки

...