web-dev-qa-db-ja.com

SQL Server-Windowsグループ認証

SQL Server(2012)データベースへのWindowsグループベースのアクセスを正しい方法で作成する方法を理解しようとしています。 Windowsグループをサーバーログインに正常に追加でき、グループをマップしたいロールを定義しました。私の質問は、Windows認証を持つユーザーがデータベースにアクセスできるようにするには、SQL Serverにユーザーを作成してWindowsグループにマッピングする必要があるのでしょうか。もしそうなら、それはユーザーごとにすべきでしょうか、それともWindowsグループログイン用の単一のユーザー名を持たせることができますか?.

現在の設定方法を示すだけです:

Windows Group Name  -> domain\AdminGroup   
Database Name       -> XYZ    
DB Login Name       -> domain\AdminGroup   
DB Role             -> xyzAdmin   
User Name           -> xyzAdminUser (mapped to Role: xyzAdmin and Login: domain\AdminGroup)

現在、私は一般的なユーザー(グループ内の各ユーザーの個別のユーザーではなく)を作成し、それをWindowsグループログインにマップしました。しかし、Windows認証であるため、その手順が必要な理由はわかりません。それは、SQL Serveが必要とするログインからユーザー名への明示的なマッピングを行うためのより多くの要件ですか? Windowsグループログインをデータベースロールにマップするオプションがある場合、SQL Serverがこれを暗黙的に舞台裏で処理できるかどうかは不明です。私が尋ねている理由は、Windowsグループ全体または個々のユーザーのいずれかに対してユーザー名を明示的に作成する必要がある場合、Windowsベースの認証であるため、ユーザーとしてそれを使用する必要があるかどうか本当にわかりません認証にユーザー名とパスワードを使用する他のログインとは異なります。

3
thinkster

私は情報を収集し、私が持っていた特定の質問に答えることを試みます。

ユーザーマッピングオプションまたはスクリプトを使用して、ログイン(サーバーレベルのプリンシパル)をデータベースロール(データベースレベルのプリンシパル)にマップできます。ログインをデータベースにマッピングしようとしたときにSQL Serverが行うことは、そのデータベースから選択できるメンバーシップ(ロール)のリストを表示することです。 1つを選択すると、対応するロールが、SQL Serverが暗黙的に作成する新しいユーザーにマッピングされます。ログインプロパティのユーザーマッピングセクションのユーザー列には、デフォルトでログイン名(WindowsユーザーまたはWindowsグループ名)が入力され、必要に応じて変更できます。確認されると、SQL Serverはデータベースに新しいUserオブジェクトを自動的に作成します。

つまり、WindowsベースのSQL Serverログインの場合、ユーザーオブジェクトを明示的に作成する必要はありません。これは、ログインのデータベースをマッピングするときに必要なメンバーシップを選択するプロセス中にSQL Serverによって自動的に行われるためです。

数年前ですが、 these の投稿はセキュリティの基本についての良い洞察を提供します。

1
thinkster

Windowsドメインセキュリティグループの作成は正しかった。必要に応じて、Windowsドメインアカウントをそのセキュリティグループに追加します。 WindowsドメイングループのSQLログインを作成するのは正しかった。 SQLは、そのWindowsドメイングループの任意のメンバーによる認証を許可します。 SQLログインの作成に関しては、これ以上何も必要ありません。 SQL Server内で必要に応じて権限を設定します。

構成をテストしましたか?どのような問題が発生していますか?

Windows認証を使用すると、Windowsグループをドメインレベルで作成でき、SQL Serverでグループ全体のログインを作成できます。ドメインレベルでからのアクセスを管理すると、アカウント管理を簡略化できます。

オンラインブック

1
Gary