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

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

автор
create proc _sp3 as
execute as user='Limited'
exec sp_executesql N'revert update tbl_Config set Config_Value = ''www.bigSite.com'' where Config_Key=''SalesPortal'''
revert
go

exec _sp3
go



смысл примера думаю понятен - достаточно вставить слово 'revert ' в начало строки своего запроса - и весь смысл использования 'execute as' исчезает как дым. может кто сталкивался?

Thanks.
15 мар 17, 01:10    [20295848]     Ответить | Цитировать Сообщить модератору
 Re: sp_executesql и execute as .... проблемка.  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Ага, а если вставить drop table, то весь смысл create table и последующих операций сразу теряется. Сталкивались с таким?
З.Ы. Вы же изучили, что делает команда revert?

Сообщение было отредактировано: 15 мар 17, 01:27
15 мар 17, 01:25    [20295866]     Ответить | Цитировать Сообщить модератору
 Re: sp_executesql и execute as .... проблемка.  [new]
tomcat2
Member

Откуда:
Сообщений: 69
Гавриленко Сергей Алексеевич,
очевидно что Вы с этим не работали и не понимаете для чего и когда нужно городить такую конструкцию. подожду тех кто работал и понимает проблему.
15 мар 17, 07:53    [20295996]     Ответить | Цитировать Сообщить модератору
 Re: sp_executesql и execute as .... проблемка.  [new]
fjlfhl,
Guest
tomcat2,

Вы не в том направлении копаете. Поищите - как бороться с SQL Injection.
15 мар 17, 09:25    [20296202]     Ответить | Цитировать Сообщить модератору
 Re: sp_executesql и execute as .... проблемка.  [new]
o-o
Guest
у вас как-то все с точностью до наоборот.
execute as используют для временного повышения прав.
и вот тогда, если сделаешь revert, останешься на бобах.
а у вас права понижаются...
я вообще сомневаюсь, чтобы кто-то так делал
15 мар 17, 10:08    [20296426]     Ответить | Цитировать Сообщить модератору
 Re: sp_executesql и execute as .... проблемка.  [new]
invm
Member

Откуда: Москва
Сообщений: 9913
tomcat2
и весь смысл использования 'execute as' исчезает как дым.
Потому что используете не по назначению. Но если очень хочется, то:
create procedure ...
as
begin
 ...
 declare @c varbinary(8000);
 execute as user = 'LimitedUser' with no revert cookie into @c;
 exec sp_executesql ...
 revert with cookie = @c;
 ...
end;
15 мар 17, 11:15    [20296838]     Ответить | Цитировать Сообщить модератору
 Re: sp_executesql и execute as .... проблемка.  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
tomcat2
Гавриленко Сергей Алексеевич,
очевидно что Вы с этим не работали и не понимаете для чего и когда нужно городить такую конструкцию. подожду тех кто работал и понимает проблему.
Совершенно верно. Я не люблю себе стрелять в ногу и использовать мутные конструкции и идиотское управление правами. Удачи найти коллегу.
15 мар 17, 12:44    [20297383]     Ответить | Цитировать Сообщить модератору
 Re: sp_executesql и execute as .... проблемка.  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 9155
tomcat2,

так у Вас проблемы с инъекцией кода, а не с revert. Не там ищите.
15 мар 17, 13:33    [20297723]     Ответить | Цитировать Сообщить модератору
 Re: sp_executesql и execute as .... проблемка.  [new]
tomcat2
Member

Откуда:
Сообщений: 69
Владислав Колосов,

"'этот стон у нас песней зовётся" (с)
есть скл сервак на котором сидят много порталов, на которых дюже умные админы которые пишут запросы для своих линкью-энтити к своим же базам. дальше объяснять нужно?
15 мар 17, 19:12    [20299329]     Ответить | Цитировать Сообщить модератору
 Re: sp_executesql и execute as .... проблемка.  [new]
o-o
Guest
Перед выполнением реплэйсить revert на ;
Правда, если оно встретится в названии объекта, получится нехорошо.
Но тогда пожаловавшимся объяснить, что ваша религия не позволяет именовать объекты со вхождением в них этого нехорошего слова. Хотят работать, пускай просят вас переименовать
15 мар 17, 19:39    [20299381]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить