Не могу выполнить xp_cmdshell из-под учетки не sysadmin

Новичок_я

Всем привет!Имею SQL2005, учетка не sysadmin, необходимо ей разрешить выполнение xp_cmdshell. Поиском воспользовался, но либо неверно понял, либо что-то не то делаю.1. Залогинился на сервер из-под локальной учетной записи (входит в группу админов)2. Залогинился на SQL сервер с Windows аутентификацией.3. При попытке выполнить
USE Master;
GRANT EXECUTE on master..xp_cmdshell to User1
Получаю
Msg 15151, Level 16, State 1, Line 3Cannot find the user 'User', because it does not exist or you do not have permission.
Пользователь User1 на SQL сервере есть, выполнение xp_cmdshell включено (из-под своей админской учетки процедура выполняется).Что я сделал не так?Спасибо!
11 ответов

Новичок_я

Выполнил
EXEC sp_xp_cmdshell_proxy_account 'ThisComputer\UserAdmin', 'UserAdmin'
где UserAdmin является админом компьютера, на котором установлен SQL Server (и из-под UserAdmin выполняется xp_cmdshell). Но из-под User1 процедура xp_cmdshell не выполняется все равно


Новичок_я

Вопрос снимается, надо внимательнее читать текст ошибок :-)


Новичок_я

Вопрос снимается, надо внимательнее читать текст ошибок :-)
Гораздо более важно под какой учетной записью работает сам SQL SERVER.


Новичок_я

Гораздо более важно под какой учетной записью работает сам SQL SERVER.
К возможности использовать xp_cmdshell это не имеет никакого отношения. Разница будет только в том, что получится сделать "внутри" командной строки.


Новичок_я

Разница будет только в том, что получится сделать "внутри" командной строки.
DeColo®es, пожалуйста поясните что Вы имеете в виду. И насколько я понимаю, раз запускает внешний процесс служба SQL SERVER, то соответственно, у учетной записи, под которой работает служба, должны быть права на запуск определенных процессов.


Новичок_я

И насколько я понимаю, раз запускает внешний процесс служба SQL SERVER, то соответственно, у учетной записи, под которой работает служба, должны быть права на запуск определенных процессов.
Права на запуск процедуры xp_cmdshell проверяет сам SQL Server, еще до того, как его процессу Windows позволит или не позволит что-либо сделать. Права учетки SQL Server, конечно важная штука, но проблемы у топикстартера именно с запуском процедуры, а не с тем, что эта учетка как-то урезана по правам. Уж выполнить dir в каталоге установки сервера она всегда сможет - иначе просто сервер не запустится. ;)


Новичок_я

Права на запуск процедуры xp_cmdshell проверяет сам SQL Server
Для этого необходимо использовать процедуру sp_configure. Вы это имеете в виду?


Новичок_я

Для этого необходимо использовать процедуру sp_configure. Вы это имеете в виду?
sp_configure не назначает никому никаких прав внутри MSSQL


Новичок_я

sp_configure не назначает никому никаких прав внутри MSSQL
Я знаю что эта процедура включает/выключает возможность использования хранимых процедур и функций. Просто мне не совсем понятно что имеет в виду DeColo®es. Имеется в виду что нужны какие-то дополнительные роли? Если да, то какие.


Новичок_я

Я знаю что эта процедура включает/выключает возможность использования хранимых процедур и функций. Просто мне не совсем понятно что имеет в виду DeColo®es. Имеется в виду что нужны какие-то дополнительные роли? Если да, то какие.
Вы сообщение об ошибке в первой теме читали вообще"Cannot find the user 'User', because it does not exist or you do not have permission."Какое отношение Cannot find the user имеет к учетным записям Windows, sp_configure и тп ?


Новичок_я

Вы сообщение об ошибке в первой теме читали вообще"Cannot find the user 'User', because it does not exist or you do not have permission."Какое отношение Cannot find the user имеет к учетным записям Windows, sp_configure и тп ?[/quot]Это я упустил :) Тогда понятно