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

Откуда: Moscow
Сообщений: 610
Доброво времени суток!

СУБД:Microsoft SQL Server 2014 - 12.0.2342.0 (X64)
Apr 4 2014 18:33:15
Copyright (c) Microsoft Corporation
Enterprise Edition: Core-based Licensing (64-bit) on Windows NT 6.3 <X64> (Build 9600: )

есть проца внутри которой запрос:
+
	select top 1 
		[date]
	from dbo.[table1] u
	join dbo.[table2] up on u.id = up.id
	where u.id = 2
	order by u.id desc



Проца написана разрабом который имеет права db_owner на базу. Я даю права на ывполнение этой процы пользователю user1 у которого нет прав на селекты из таблиц.


При выполнении пользователем процы он получает ошибку
The SELECT permission was denied on the object 'table2', database '', schema 'dbo'.


Не пойму зачем сервак просит дать права на селект из таблицы?
18 июл 14, 17:24    [16326541]     Ответить | Цитировать Сообщить модератору
 Re: Права при выполнии процедуры  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
Чтобы работал ownership chaining, должно быть соблюдено больше условий, чем "Я даю права на ывполнение этой процы пользователю user1".

Сообщение было отредактировано: 18 июл 14, 18:04
18 июл 14, 17:26    [16326560]     Ответить | Цитировать Сообщить модератору
 Re: Права при выполнии процедуры  [new]
andrew shalaev
Member

Откуда: Moscow
Сообщений: 610
Гавриленко Сергей Алексеевич,

Если я не ошибаюсь, то ownership chaining это в случае, если объекты из разных БД, у меня все в одной.
18 июл 14, 17:30    [16326586]     Ответить | Цитировать Сообщить модератору
 Re: Права при выполнии процедуры  [new]
andrew shalaev
Member

Откуда: Moscow
Сообщений: 610
разные схемы, может это причина...
18 июл 14, 17:31    [16326597]     Ответить | Цитировать Сообщить модератору
 Re: Права при выполнии процедуры  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
andrew shalaev
Гавриленко Сергей Алексеевич,

Если я не ошибаюсь, то ownership chaining это в случае, если объекты из разных БД, у меня все в одной.
Onwership chaining - это то, про что надо прочитать. http://technet.microsoft.com/en-us/library/ms188676(v=sql.105).aspx
18 июл 14, 17:34    [16326611]     Ответить | Цитировать Сообщить модератору
 Re: Права при выполнии процедуры  [new]
andrew shalaev
Member

Откуда: Moscow
Сообщений: 610
Итого, проблема была в том, что владелец схемы процедуры был отличен от владельца схемы таблиц.
18 июл 14, 17:36    [16326626]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить