Я пытаюсь использовать учетную запись прокси для non sysadmin, чтобы предоставить им разрешение exec на xp_cmdshell. То, что я сделал это:sql server agent proxy account
USE [master]
GO
CREATE CREDENTIAL [proxyaccount] WITH IDENTITY = N'domain\user', SECRET = N'password'
GO
USE [master]
GO
CREATE CREDENTIAL [proxyaccount] WITH IDENTITY = N'domain\user', SECRET = N'password'
GO
USE [msdb]
GO
EXEC msdb.dbo.sp_add_proxy @proxy_name=N'myproxy',@credential_name=N'proxyaccount',
@enabled=1
GO
EXEC msdb.dbo.sp_grant_proxy_to_subsystem @proxy_name=N'myproxy', @subsystem_id=2
GO
EXEC msdb.dbo.sp_grant_proxy_to_subsystem @proxy_name=N'myproxy', @subsystem_id=3
GO
EXEC msdb.dbo.sp_grant_proxy_to_subsystem @proxy_name=N'myproxy', @subsystem_id=11
GO
Но все-таки, когда пользователь пытается сделать
xp_cmdshell 'dir c:'
Это дает следующее сообщение об ошибке:
Msg 229, Level 14, State 5, Procedure xp_cmdshell, Line 1
The EXECUTE permission was denied on the object 'xp_cmdshell', database 'mssqlsystemresource', schema 'sys'.
Любой знает, что еще я должен делать? У входа только есть разрешение на подключение к серверу.
заранее спасибо
Почему бы вам не позволить администраторам выполнять xp_cmdshell? –
- его часть задания агента, принадлежащего пользователю. и по соображениям безопасности я не хочу менять владельца задания на sa – Manjot