#sql-server #sql-server-2008
#sql-server #sql-server-2008
Вопрос:
В настоящее время я нахожусь на хосте (A), подключаюсь к базе данных MSSQL на сервере (B). Когда я выполняю системный вызов, например
EXEC xp_cmdshell 'Systeminfo' GO
из MS SQL 2008 он всегда возвращает мне системную информацию от клиента (A), на котором я в настоящее время запускаю свой инструмент управления SQL.
Есть ли возможность запускать системные вызовы, которые будут возвращать мне информацию с сервера (B)?
Комментарии:
1. К какому экземпляру SQL Server вы подключены окончательно? Он вернет свою информацию
2. Я использую SQL manager от своего клиента для подключения к экземпляру, размещенному на моем сервере, ваше предложение заставило меня понять, что я получу больше информации, если закрою экземпляр на своем клиенте. Очевидно, что EXEC автоматически попытается подключиться к localhost, и если он не работает, он попытается включить его.
Ответ №1:
С тех пор, как я задал этот вопрос, я перезагрузился и снова попробовал все шаги: 1. Выключите локальный сервер 2. Подключитесь к внешнему серверу 3. Включите команду XP_CMDSHELL для внешнего сервера с помощью
-- To allow advanced options to be changed.
EXEC sp_configure 'show advanced options', 1;
GO
-- To update the currently configured value for advanced options.
RECONFIGURE;
GO
-- To enable the feature.
EXEC sp_configure 'xp_cmdshell', 1;
GO
-- To update the currently configured value for this feature.
RECONFIGURE;
GO
А затем просто запустите
EXEC xp_cmdshell 'Systeminfo';
GO
Странно, что это работает сейчас, потому что я не мог заставить его работать последние недели.