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

Откуда:
Сообщений: 2083
Есть domain\adminUser с админовкими правами на сам сервер Windows 2012, а в SQL у него стоит галочка sysadmin. Не получается под этим пользователем запустить xp_cmdshell. execute as login = 'domain\adminUser' не переключает? Комментарии ниже по коду:
use master
go
grant exec on xp_cmdshell to [domain\adminUser] -- на всякий случай, хотя domain\adminUser уже является в SQL членом "sysadmin"
exec master.dbo.sp_xp_cmdshell_proxy_account null;
create credential ##xp_cmdshell_proxy_account## with identity = 'domain\adminUser', secret = 'password';
go
exec master.dbo.sp_xp_cmdshell_proxy_account 'domain\adminUser','password'; -- выполнился без ошибок!
go

exec xp_cmdshell 'whoami'; -- nt service\mssqlserver, как и должно быть
go
execute as login = 'domain\adminUser'; -- не работает ???
exec xp_cmdshell 'whoami'; -- снова nt service\mssqlserver!!!
exec xp_cmdshell 'dir "\\server\share\"' -- логично, что расшаренный ресурс не виден, "Access is denied"

В SQL 2008 всё работает!   А в этой версии нет
Microsoft SQL Server 2014 (SP1-CU4) (KB3106660) - 12.0.4436.0 (X64) 
	Dec  2 2015 16:09:44 
	Copyright (c) Microsoft Corporation
	Enterprise Edition (64-bit) on Windows NT 6.3 <X64> (Build 9600: ) (Hypervisor)
8 июл 16, 13:53    [19385946]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2014 execute as login не работает для xp_cmdshell  [new]
o-o
Guest
user89
в SQL у него стоит галочка sysadmin.

BOL
When it is called by a user that is not a member of the sysadmin fixed server role, xp_cmdshell connects to Windows by using the account name and password stored in the credential named ##xp_cmdshell_proxy_account##.

а когда команду вызывает сисадмин, то выполняется под учеткой сервера.
8 июл 16, 14:02    [19385995]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2014 execute as login не работает для xp_cmdshell  [new]
o-o
Guest
попробуйте убрать логин из сисадминов и просто дать ему CONTROL SERVER.
должо заюзаться прокси.
что мне странно, так это утверждение, что в 2008-ом было по-другому
8 июл 16, 14:04    [19386008]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2014 execute as login не работает для xp_cmdshell  [new]
user89
Member

Откуда:
Сообщений: 2083
o-o,

снял галочку sysadmin, всё заработало, спасибо!

З.Ы. exec master.dbo.sp_xp_cmdshell_proxy_account 'domain\adminUser','password'   сначала не выполнялся. Помог запуск студии под Администратором 17807729
8 июл 16, 14:47    [19386309]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить