これは、SQL Server 2005以降、表面積構成ツール
、SQLServerをデフォルトでより安全にするための取り組み。そのツールはその後廃止されましたが、 sp_configure
。 例はMSDNに示されています
:
-- 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
(私もこれについて何年も前にブログを書いています 。)
その理由は、これが潜在的なセキュリティホールであるためです。 SQLServerに xp_cmdshell
の実行を許可する場合
、その後、理論的には任意のを送信できます そこにオペレーティングシステムコマンドがあり、あなたが持っていると思っていたすべてのセキュリティをバイパスします。これは、SQL Serverサービスアカウントやプロキシアカウントがsysadminまたは他のレベルに昇格されている場合に特に問題になります。これは、実行できるはずの正確なことだけを明示的に定義するよりも簡単だからです。
コマンドライン操作をサポートするために有効または無効にするのではなく、セキュリティをある程度制御しながらオペレーティングシステムの機能を公開する一般的な方法は、SQL-CLRを使用して必要なOSレベルの機能を実装することです。これが