0

SQL Server メンテナンス プランで発生する可能性のあるさまざまなイベントを監視しようとしています。これを行うための私の望ましい方法は、保守計画でデータを使用して HTTP POST を実行することです。いくつかの調査の後、cURL を使用することをお勧めしますが、セキュリティの観点から理想的ではない xp_cmdshell を有効にする必要があることを理解しています。

そのため、xp_cmdshell が有効になっているかどうかを確認し、コマンドを実行するのに十分な時間有効になっていない場合は、もう一度無効にする T-SQL を少しまとめようとしています。しかし、私が以下に持っているのは協力的ではなく、それらすべてのGOと関係があると確信しています...

DECLARE @cmdstatus INT
SET @cmdstatus = (SELECT CONVERT(INT, ISNULL(value, value_in_use)) AS config_value FROM  sys.configurations WHERE  name = N'xp_cmdshell')
IF @cmdstatus = 1
EXEC xp_cmdshell 'curl --user user:password --data "task=test&status=success" https://www.example.ca/index.php';
GO
IF @cmdstatus = 0
EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
EXEC sp_configure 'xp_cmdshell', 1;
GO
RECONFIGURE;
GO
EXEC xp_cmdshell 'curl --user user:password --data "task=test&status=success" https://www.example.ca/index.php';
GO
EXEC sp_configure 'xp_cmdshell', 0;
GO
RECONFIGURE;
GO
EXEC sp_configure 'show advanced options', 0;
GO
RECONFIGURE;
GO

助けてくれてありがとう。

4

0 に答える 0