web-dev-qa-db-ja.com

システム管理者権限の回避

これは私の最初の投稿なので、謝罪から始めます。他の質問が自分の状況と完全に一致していないことを確認します。また、私はDBAではなくSysAdminなので、SQLについての私の理解は錆びて限定的です。

私の組織は、アプリケーションを実行するために遅延プログラミングと呼ばれることを実行し、SA資格情報を要求する、またはカスタムアカウントにsysadmin権限を要求するベンダーに頻繁に遭遇します。私の組織にもデータがあります必要なアクセスと権限のみを付与することを要求する保護/コンプライアンスポリシー。

最近使用しているベンダーは、自分のアカウントをsysadminにすることを望んでいますが、実際には単一のデータベースへのアクセスのみが必要です。 ADアカウントを与えると(それらのアプリケーションはWindows認証でのみ機能するため)、sysadmin権限を使用して、アプリケーションのGUIを使用してデータベースを参照および選択できますが、同じアカウントをDBOwnerにすると、何も見つかりません。

他のデータベースをポーリングしようとしているのか、必要なデータベースに必要な最低レベルの権限が何であるのかを判断する方法はありますか?ベンダに尋ねたところ、「sysadmin権限が必要ですが、1つのデータベースにしかアクセスしないので問題ありません」と言われました。それは私たちのポリシーに関しては問題ありません。

アドバイスありがとうございます。

6
Mark

ベンダーが独自のデータベースを提供している場合は、データベースレベルで所有者の役割とは別にアカウントを作成できます。システムレベルで行う必要があるのは、アカウントにデータベースへのログインアクセス許可を付与することだけです。これにより、ユーザーはデータベースを完全に制御できるようになり、アカウントを使用して他のデータベースにアクセスできなくなります。 tempdbのデフォルトに変更を加えない限り、すべてのユーザーがデフォルトでtempdbに必要なすべてのアクセス権を持っているため、tempdbアクセスにsysadminデータベースロールが必要であると彼らが言った場合、他の手順は必要ありません。この方法でアカウントを設定すると、メールやxp_cmd_ShellなどのSQLの他の拡張機能を有効にできなくなり、基盤となるOSにアクセスできるようになります。

SQLサーバーサービスレベルで実行できる他の強化機能を使用して、SQLのsysadminアカウントにOSの管理者権限がないことを確認できます。これには、ボックス上のユーザーとしてSQLサービスとSQLエージェントサービスを実行することが含まれます。次に、Windowsグループmssql $ .... usersをディスクメンテナンスに追加し、バッチポリシーとしてログオンします。これにより、2つのアカウントにサービスとして実行するためのアクセス権が与えられ、SQLサーバーが基礎となるデータ/ログファイルを拡張する必要があるときに、瞬時にファイルを初期化できます。また、データとログファイルが置かれているのと同じグループのフォルダーのNTFSレベルでフルコントロールを付与する必要があります。 SQL Server構成ツールを使用して、必要な権限のほとんどが設定されるので、アカウントを変更します。

これが [〜#〜] msdn [〜#〜] からの基本的なガイドですが、過去に使用した基本的な手順を段階的に見つけようとしています

1
Aaron