Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
dubok79 Member Откуда: Владимирская обл. Сообщений: 141 |
Добрый день. Есть хранимая процедура. В ней делается выборка SELECT, но сам запрос формируется в зависимости от входящих параметров, типа:DECLARE @SQL varchar(500), @NameTable varchar(128) SET @SQL = 'SELECT * FROM '+@NameTable EXEC(@SQL) На саму процедуру установлено разрешение на выполнение для определенной роли. В этой роли находятся пользователи. При вызове процедуры, выдается ошибка из-за отсутствия разрешения на выполнение SELECT для таблички @NameTable. Вопрос: можно ли как то установить разрешение так, что бы не устанавливать эти разрешения на каждую из таблиц? Заранее спасибо. |
26 май 14, 08:57 [16070947] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
Не делать динамических запросов |
||
26 май 14, 09:28 [16071083] Ответить | Цитировать Сообщить модератору |
dubok79 Member Откуда: Владимирская обл. Сообщений: 141 |
Это понятно, но это не вариант. Т.е. только выставлять права на каждую из таблиц? |
26 май 14, 09:49 [16071235] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
Это самый лучший вариант
Изучать EXECUTE AS Clause |
||||
26 май 14, 09:53 [16071258] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9633 |
Опция execute as у процедуры. |
26 май 14, 09:54 [16071266] Ответить | Цитировать Сообщить модератору |
dubok79 Member Откуда: Владимирская обл. Сообщений: 141 |
Спасибо! |
26 май 14, 10:26 [16071518] Ответить | Цитировать Сообщить модератору |
Владислав Колосов Member Откуда: Сообщений: 8301 |
Чудесный код для инъекций. Так и просится. |
26 май 14, 11:12 [16071883] Ответить | Цитировать Сообщить модератору |
dubok79 Member Откуда: Владимирская обл. Сообщений: 141 |
Владислав Колосов, Замучиетесь ;) |
26 май 14, 12:10 [16072426] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |