Выполнение команд операционной системы на сервере баз данных ms sql без доступа к серверу
Полезный набор команд для некоторых рабочих ситуаций
- Описание
- Подробнее
Описание
В работе возможна ситуация, когда нет доступа к административному терминалу сервера субд и нет физического доступа к нему. Но необходимо выполнить определенные комнды на сервере. Случай из практики — sql сервер и сервер 1С установлены на одной машине и необходимо перезапустить службу сервера 1С. Или необходимо создать определенное задание в таск-менеджере операционной системы и т.д.. В ряде случаев (зависит от настроек сервера) при наличии логина к sql server (с 2005) с ролью sysadmin, например «sa», можно получить доступ к командной строке системы и выполнять консольные команды с высокими привилегиями. Ниже описаны действия:
На рабочей станции запускается managment studio и выполняется запрос
EXEC sp_configure ‘show advanced options’, 1
GO
RECONFIGURE
GO
EXEC sp_configure ‘xp_cmdshell’, 1
GO
RECONFIGURE
GO
Подробнее http://technet.microsoft.com/ru-ru/library/ms190693.aspx http://technet.microsoft.com/ru-ru/library/ms175046.aspx
Нам важно, что «Процесс Windows, порожденный процедурой xp_cmdshell, имеет те же права защиты, что и учетная запись службы SQL Server.» Теперь, в большинстве случаев, появится возможность выполнять команды системы сервера с высокими привилегиями. По соображениям безопасности после необходимо отключать данный параметр установкой значения 0.
Примеры запросов с полезными командами:
* копирование файла между каталогами сервера
EXEC xp_cmdshell ‘copy «C:\test\logcfg.xml» «C:\Program Files\1cv81\bin\conf\logcfg.xml» ‘;
* удаление файла на сервере
EXEC xp_cmdshell ‘del «C:\Program Files\1cv81\server\srvribrg.lst» ‘;
* удаление каталога «reg_1541» вместе с его содержимым
EXEC xp_cmdshell ‘rmdir /s /q «C:\Program Files\1cv81\server\reg_1541″‘;
* просмотр запущенных служб
EXEC xp_cmdshell ‘net start’;
* просмотр процессов
EXEC xp_cmdshell ‘tasklist’;
Если сервер 1С установлен на том же сервере:
* остановка службы сервера 1С
EXEC xp_cmdshell ‘net stop «1C:Enterprise 8.1 Server (x86-64) Agent»‘;
* запуск службы сервера 1С
EXEC xp_cmdshell ‘net start «1C:Enterprise 8.1 Server (x86-64) Agent»‘;
* остановка через ragent (запуск -start)
EXEC xp_cmdshell ‘»C:\Program Files\1cv81\bin\ragent.exe» -stop’;

