Мне нужно ограничить доступ пользователей к SELECT, INSERT, UPDATE и DELETE, чтобы пользователь мог управлять данными только с помощью хранимых процедур, которые я предоставляю.Ограничить пользователя хранимыми процедурами
Так, например
SELECT * FROM Table1
должен возвращать
The SELECT permission was denied on the object 'Table1'
однако, если есть хранимая процедура SelectTable1 определяется как
CREATE PROCEDURE SelectTable1
AS
BEGIN
SELECT * FROM Table1
END
(реальный содержит фильтрацию и параметры, так что это не бессмысленно, как выше)
Пользователь должен выполнить его успешно и получить набор результатов.
Но, очевидно, я не успеваю реализовать этот набор разрешений. Может ли кто-нибудь указать мне на какой-то конкретный учебник? MSDN не очень помог.
База данных SQL Server 2012 и все объекты (таблицы и хранимые процедуры) находятся в пользовательской схеме.
Это работает, за исключением того, что я получаю Разрешение SELECT было отклонено на объекте «Таблица1» при попытке выполнить процедуру, как и при необработанном запросе. – adontz
@adontz Пожалуйста, ознакомьтесь с целями собственности http://technet.microsoft.com/en-us/library/aa905173%28v=sql.80%29.aspx –