sql >> データベース >  >> RDS >> Sqlserver

xp_cmdshellがSQLServer2012で機能しないのはなぜですか?

    これは、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レベルの機能を実装することです。これがにアクセスするための良い出発点です。 CLRを使用したファイルシステム (ただし、周りを検索すると、はるかに現代的で徹底的なアプローチが見つかります)。



    1. だから私はpostgresqlとlocalhostポートをrubyアプリと競合してインストールしましたか?

    2. エラー1215:ON DELETE SET NULLを使用すると、外部キー制約を追加できません

    3. インクリメンタル統計は、クエリオプティマイザでは使用されません

    4. mySQL:インデックステーブルのutf8文字セットと重複キーエラー