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

Откуда: Уфа
Сообщений: 221
Приветствую

Есть таблица HumanResource.Employee, процедура SuppSite.GetNewsByID, пользователь suppliers, который является владельцем схемы SuppSite.

В процедуре есть запрос:
SELECT n.news_id,
	       n.news_dt,
	       n.news_topic,
	       n.news_body,
	       n.ispublished,
	       n.employee_id,
	       e.employee_name
	FROM   [SuppSite].News AS n
	       INNER JOIN HumanResource.Employee AS e
	            ON  e.employee_id = n.employee_id
	WHERE  n.isdeleted = 0
	       AND n.news_id = @news_id


При выполнении процедуры от имени suppliers выдается сообщение о том что не разрешено select из таблицы HumanResource.Employee. Можно ли корректно выполнить процедуру от имени suppliers, не давая прав на select из HumanResource.Employee?

Заранее спасибо за ответы
8 апр 14, 15:13    [15850038]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к таблице из другой схемы  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10234
Блог
execute as
?
8 апр 14, 15:15    [15850062]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к таблице из другой схемы  [new]
Ринат
Member

Откуда: Уфа
Сообщений: 221
Knyazev Alexey,

EXECUTE AS LOGIN='suppliers';
Exec [SuppSite].[GetNewsByID] @news_id = 0;
revert;
GO

Здесь выдается ошибка:
Сообщение 229, уровень 14, состояние 5, процедура GetNewsByID, строка 8
Запрещено разрешение "SELECT" на объект "Employee" базы данных "...", схемы "HumanResource".
8 апр 14, 15:19    [15850094]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к таблице из другой схемы  [new]
Glory
Member

Откуда:
Сообщений: 104760
Ринат
Можно ли корректно выполнить процедуру от имени suppliers, не давая прав на select из HumanResource.Employee?

От имени suppliers - нельзя
От имени другого пользователя - можно. У другого пользователя права на select из HumanResource.Employee должны быть
8 апр 14, 15:25    [15850148]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к таблице из другой схемы  [new]
Ринат
Member

Откуда: Уфа
Сообщений: 221
ALTER PROCEDURE [SuppSite].[GetNewsByID]
	@news_id INT
WITH EXECUTE AS SELF
AS

помогло так
8 апр 14, 15:55    [15850443]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить