Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 sp_xp_cmdshell_proxy_account - User does not have permission to perform this action.  [new]
lisica
Guest
объясните, пожалуйста, где и какие права нужно дать:

ALTER trigger [dbo].[mytrig]
	on [dbo].[my table]
	with exec as 'sa'  -- либо 'pc\user', 'pswd'
	after update, insert
as
begin
-- bla-bla-bla

exec sp_xp_cmdshell_proxy_account 'pc\user', 'pswd';
exec master..xp_cmdshell ...

end


получаю:
Сообщение 15247, уровень 16, состояние 1, процедура sp_xp_cmdshell_proxy_account, строка 1
User does not have permission to perform this action.
The statement has been terminated.

под виндовсом user в администраторах, в скуле Управление сервером тоже галочку поставила, чего и где не хватает?
2 июн 15, 11:22    [17719104]     Ответить | Цитировать Сообщить модератору
 Re: sp_xp_cmdshell_proxy_account - User does not have permission to perform this action.  [new]
Glory
Member

Откуда:
Сообщений: 104751
lisica
в скуле Управление сервером тоже галочку поставила

Кому поставили то ?
2 июн 15, 11:28    [17719154]     Ответить | Цитировать Сообщить модератору
 Re: sp_xp_cmdshell_proxy_account - User does not have permission to perform this action.  [new]
lisica
Guest
Glory
lisica
в скуле Управление сервером тоже галочку поставила

Кому поставили то ?


pc\user
2 июн 15, 11:30    [17719163]     Ответить | Цитировать Сообщить модератору
 Re: sp_xp_cmdshell_proxy_account - User does not have permission to perform this action.  [new]
Glory
Member

Откуда:
Сообщений: 104751
lisica
Glory
пропущено...

Кому поставили то ?


pc\user

А он выполняет показанный вами триггер ?
2 июн 15, 11:36    [17719197]     Ответить | Цитировать Сообщить модератору
 Re: sp_xp_cmdshell_proxy_account - User does not have permission to perform this action.  [new]
lisica
Guest
Glory
lisica
пропущено...


pc\user

А он выполняет показанный вами триггер ?


да, до момента exec sp_xp_cmdshell_proxy_account
2 июн 15, 11:38    [17719211]     Ответить | Цитировать Сообщить модератору
 Re: sp_xp_cmdshell_proxy_account - User does not have permission to perform this action.  [new]
Glory
Member

Откуда:
Сообщений: 104751
lisica
да, до момента exec sp_xp_cmdshell_proxy_account

И вы пробовали НЕ в триггере это выполнять под этим же логином ?
2 июн 15, 11:40    [17719225]     Ответить | Цитировать Сообщить модератору
 Re: sp_xp_cmdshell_proxy_account - User does not have permission to perform this action.  [new]
lisica
Guest
Glory
lisica
да, до момента exec sp_xp_cmdshell_proxy_account

И вы пробовали НЕ в триггере это выполнять под этим же логином ?


в не триггера из под своего пользователя, из под пользователя sa все выполняется, но при этом без sp_xp_cmdshell_proxy_account тоже выполняется, а в триггере нет
в чем может быть проблема?
2 июн 15, 11:46    [17719266]     Ответить | Цитировать Сообщить модератору
 Re: sp_xp_cmdshell_proxy_account - User does not have permission to perform this action.  [new]
Glory
Member

Откуда:
Сообщений: 104751
lisica
в не триггера из под своего пользователя, из под пользователя sa все выполняется,

А какое отношение "свой пользователь" и sa имеют к pc\user ?
2 июн 15, 11:50    [17719306]     Ответить | Цитировать Сообщить модератору
 Re: sp_xp_cmdshell_proxy_account - User does not have permission to perform this action.  [new]
lisica
Guest
Glory
lisica
в не триггера из под своего пользователя, из под пользователя sa все выполняется,

А какое отношение "свой пользователь" и sa имеют к pc\user ?


никакого
2 июн 15, 12:23    [17719542]     Ответить | Цитировать Сообщить модератору
 Re: sp_xp_cmdshell_proxy_account - User does not have permission to perform this action.  [new]
Glory
Member

Откуда:
Сообщений: 104751
lisica
Glory
пропущено...

А какое отношение "свой пользователь" и sa имеют к pc\user ?


никакого

Это круто. Тестирую под одинм пользователем, а падает под другим. В чем может быть проблема ?
2 июн 15, 12:25    [17719554]     Ответить | Цитировать Сообщить модератору
 Re: sp_xp_cmdshell_proxy_account - User does not have permission to perform this action.  [new]
lisica
Guest
Glory,

вам может быть лень вчитываться в то, что вам пишут, так вот, там написано, ЧТО ПРОБОВАЛА ПОД РАЗНЫМИ ПОЛЬЗОВАТЕЛЯМИ В ТОМ ЧИСЛЕ И ПОД СВОИМ.

ладно не заморачивайтесь, можете закрыть тему. пойду опять с нашими админами воевать, возможно, и это их рук дело.
2 июн 15, 12:43    [17719671]     Ответить | Цитировать Сообщить модератору
 Re: sp_xp_cmdshell_proxy_account - User does not have permission to perform this action.  [new]
Glory
Member

Откуда:
Сообщений: 104751
lisica
вам может быть лень вчитываться в то,

Больше того, мне все противнее вчитываться в ваши глупости

lisica
ЧТО ПРОБОВАЛА ПОД РАЗНЫМИ ПОЛЬЗОВАТЕЛЯМИ В ТОМ ЧИСЛЕ И ПОД СВОИМ.

А нужно под ТЕМ, ДЛЯ КОТОРОГО ВЫДАЕТСЯ ОШИБКА (может вы так разглядите то, что вам пишут)
2 июн 15, 12:46    [17719694]     Ответить | Цитировать Сообщить модератору
 Re: sp_xp_cmdshell_proxy_account - User does not have permission to perform this action.  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8828
lisica, Вы делаете что-то неправильно, если приходится использовать административную процедуру xp_cmdshell.
2 июн 15, 15:03    [17720740]     Ответить | Цитировать Сообщить модератору
 Re: sp_xp_cmdshell_proxy_account - User does not have permission to perform this action.  [new]
lisica
Guest
Владислав Колосов
lisica, Вы делаете что-то неправильно, если приходится использовать административную процедуру xp_cmdshell.


Простите, а вы не могли бы пояснить почему?
Я ее использую, чтобы выводить данные в текстовый файл.

Что-то типа:
select @cmdtxt = 'bcp "select N''' + @datatxt + '''" queryout  d:\path\' + @filename + '.dat -c -Cacp -S myserver -T';
exec master..xp_cmdshell @cmdtxt, no_output;


то, что я прописала выполнение от sa, то это временно, пока разбиралась с правами
тем более, что с нашими админами это грустная история, пока добьешься от них что-то

Подскажите, пожалуйста, как сделать правильно?
3 июн 15, 06:38    [17723273]     Ответить | Цитировать Сообщить модератору
 Re: sp_xp_cmdshell_proxy_account - User does not have permission to perform this action.  [new]
Jaffar
Member

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

нужно просто сделать обертку которая будет вызывать xpcmdshell - под sa и всё.
3 июн 15, 09:34    [17723540]     Ответить | Цитировать Сообщить модератору
 Re: sp_xp_cmdshell_proxy_account - User does not have permission to perform this action.  [new]
Glory
Member

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

нужно просто сделать обертку которая будет вызывать xpcmdshell - под sa и всё.

Какую нафиг обертку.
lisica собирается создать откровенную фигню - выгружать в триггере чрез xpcmdshell изменения самой таблицы.
3 июн 15, 09:55    [17723631]     Ответить | Цитировать Сообщить модератору
 Re: sp_xp_cmdshell_proxy_account - User does not have permission to perform this action.  [new]
o-o
Guest
но ошибка состоит в другой фигне:
триггер на таблицу -- датабэйсный объект,
в нем в execute as может фигурировать только ЮЗЕР.
так что
1. нам поднаврали про
ALTER trigger [dbo].[mytrig]
	on [dbo].[my table]
	with exec as 'sa'  -- либо 'pc\user', 'pswd'
	after update, insert
as
begin
-- bla-bla-bla

exec sp_xp_cmdshell_proxy_account 'pc\user', 'pswd';
exec master..xp_cmdshell ...

end

такое не скомпилируется никогда по причине
Msg 15151, Level 16, State 1, Procedure mytrig, Line 7
Cannot execute as the user 'sa', because it does not exist or you do not have permission.


2. ошибки надо внимательно читать,
раз пишут, у ЮЗЕРА нет прав
Сообщение 15247, уровень 16, состояние 1, процедура sp_xp_cmdshell_proxy_account, строка 1
User does not have permission to perform this action.


то впору задуматься:
а права-то кому давала, юзеру или логину?
3 июн 15, 10:06    [17723713]     Ответить | Цитировать Сообщить модератору
 Re: sp_xp_cmdshell_proxy_account - User does not have permission to perform this action.  [new]
o-o
Guest
подтверждающее ссылко:
Using EXECUTE AS in Modules
EXECUTE AS can be used to define the execution context of the following user-defined modules: functions, procedures, queues, and triggers. For example, the execution context can be switched from the caller of the module to the owner of the module, or to a specified user.
логин не подразумевается вообще, поэтому и пишет в ответ,
что нет ЮЗЕРА sa.
и логин вы в EXECUTE AS Clause датабэйсного (не серверного) модуля не впихнете никак:
-- SQL Server Syntax
Functions (except inline table-valued functions), Stored Procedures, and DML Triggers
{ EXEC | EXECUTE } AS { CALLER | SELF | OWNER | 'user_name' }

DDL Triggers with Database Scope
{ EXEC | EXECUTE } AS { CALLER | SELF | 'user_name' }

DDL Triggers with Server Scope and logon triggers
{ EXEC | EXECUTE } AS { CALLER | SELF | 'login_name' }

Queues
{ EXEC | EXECUTE } AS { SELF | OWNER | 'user_name' }
3 июн 15, 10:14    [17723747]     Ответить | Цитировать Сообщить модератору
 Re: sp_xp_cmdshell_proxy_account - User does not have permission to perform this action.  [new]
Glory
Member

Откуда:
Сообщений: 104751
o-o
но ошибка состоит в другой фигне:

Да что вы говорите !
lisica же дала честное слово, что все работает под "своим пользователем и sa"
3 июн 15, 10:18    [17723775]     Ответить | Цитировать Сообщить модератору
 Re: sp_xp_cmdshell_proxy_account - User does not have permission to perform this action.  [new]
o-o
Guest
честными пионерскими канайте кого другого, меня таким не проймешь
да и клялась она о выполнении ВНЕ триггера:
lisica
в не триггера из под своего пользователя, из под пользователя sa все выполняется, но при этом без sp_xp_cmdshell_proxy_account тоже выполняется, а в триггере нет

вне модулей идет EXECUTE AS statement, это другая статья, не EXECUTE AS clause
3 июн 15, 10:25    [17723812]     Ответить | Цитировать Сообщить модератору
 Re: sp_xp_cmdshell_proxy_account - User does not have permission to perform this action.  [new]
Glory
Member

Откуда:
Сообщений: 104751
o-o
да и клялась она о выполнении ВНЕ триггера:

В первом посте приведено сообщение об ошибке, которое по утверждению lisica возникает при выполнении триггера
3 июн 15, 10:28    [17723828]     Ответить | Цитировать Сообщить модератору
 Re: sp_xp_cmdshell_proxy_account - User does not have permission to perform this action.  [new]
o-o
Guest
капец какой, а в моем сообщении приведено, что нам в этом месте поднаврали.
давайте поиграем в "подтвердите свои слова картинкой",
вот мое, а теперь пускай лисица то же самое покажет, как получила ту ошибку при написанном with exec as 'sa'

К сообщению приложен файл. Размер - 42Kb
3 июн 15, 10:38    [17723890]     Ответить | Цитировать Сообщить модератору
 Re: sp_xp_cmdshell_proxy_account - User does not have permission to perform this action.  [new]
Glory
Member

Откуда:
Сообщений: 104751
o-o
капец какой, а в моем сообщении приведено, что нам в этом месте поднаврали.
давайте поиграем в "подтвердите свои слова картинкой",

Да что там ваши картинки ! Вы что не верите, что lisica все делает правильно и сообщает вам правдивую информацию ?
И вам тоже "лень вчитываться в то, что вам пишут, так вот, там написано, ЧТО ПРОБОВАЛА ПОД РАЗНЫМИ ПОЛЬЗОВАТЕЛЯМИ В ТОМ ЧИСЛЕ И ПОД СВОИМ. " ?
3 июн 15, 10:42    [17723925]     Ответить | Цитировать Сообщить модератору
 Re: sp_xp_cmdshell_proxy_account - User does not have permission to perform this action.  [new]
o-o
Guest
Glory,
ой, извините, я сегодня торможу, продолжайте диалог с лисицей

lisica , вы не по админам бегайте,
а переделайте вот на такое:
alter trigger [dbo].[mytrig]
	on dbo.test
	with exec as 'dbo'  -- либо 'pc\user', 'pswd'
	after update, insert
as
begin
  select USER, SYSTEM_USER;
end  


проблему оно вам не решит, но зато, возможно, осознаете разницу между юзером и логином
3 июн 15, 10:53    [17724020]     Ответить | Цитировать Сообщить модератору
 Re: sp_xp_cmdshell_proxy_account - User does not have permission to perform this action.  [new]
lisica
Guest
уважаемые форумчане, удивительно, что из такого вопроса столько выросло %)

в первом посте я всего лишь хотела показать, что разные способы пробовала (кучу разных пользователей) и натыкалась на ошибку, когда из ssms работает, а из триггера нет. а с админами нашими крайне сложно работать, только после приказа сверху во всем разобрались и все работает. но я точно не была уверена, что это не моя ошибка, может из триггера вообще нельзя такое делать, вот и обратилась на форум. сейчас sp_xp_cmdshell_proxy_accoun вообще убрала, все работает с with exec as 'sql_user_с_нужными_правами'

возможно, я крайне неправа, что использую xp_cmdshell прям в триггере, но пока другого не придумала.
я не пишу в файл каждое изменение/добавление в таблице, только анализирую кучу полей, а примерно 5-10 раз в сутки формируется файл с тремя цифрами, который куда-то там отправляется, вот и все.
конечно мне самой было бы намного удобнее просто предоставить доступ к таблице или отправить по почте, но потребовали именно файл.
3 июн 15, 13:03    [17724896]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить