
レポート作成の目的で SQL Server インスタンスを構築しています。サーバーおよびデータベースのログインに AD グループを使用する予定です。異なるロール (管理者、開発者、ユーザーなど) を持つ複数のグループがあり、これらのロールを SQL Server データベース ロール (db_owner、db_datawriter など) にマップしたいと考えています。ログインに AD グループを使用することの長所と短所は何ですか? どのような問題に気づきましたか?
答え1
そもそも AD を管理しなければならないというオーバーヘッドを除けば、デメリットはないと思います。SQL Server に Windows ログイン資格情報を使用することは、特にあなたがおっしゃっているような組織化されたロール グループを使用する方法は、間違いなく Microsoft のベスト プラクティスの推奨事項です。Microsoft が望むなら、SQL Server 認証のオプションは完全に削除されるでしょう。
補遺:
SQL 2005 以降を使用している場合は、次の手順に従って、既定のスキーマ オプションを使用します (これには GUI オプションはないと思われます)。
ALTER USER userName
WITH <set_item> [ ,...n ]
<set_item> ::=
NAME = newUserName
| DEFAULT_SCHEMA = schemaName
| LOGIN = loginName
例:
ALTER USER DOMAIN\UserName DEFAULT_SCHEMA = dbo;
GO
答え2
Active Directory グループの管理は、Active Directory 管理者以外の管理者に委任することもできます。これは、アプリケーション内管理ツールに代わる便利な機能です。
答え3
私が遭遇した最大の欠点は、AD 認証をサポートせず、通常は admin/admin のような独創的なログインで SQL 認証の使用を要求するサード パーティ アプリです。それ以外の唯一の問題は、SQL サーバー上でデータベースにアクセスできるユーザーを完全に把握できず、グループのみ、またはアクティブなユーザーのみ、またはユーザーがオブジェクトを所有しているかどうかのみを確認できることです。ただし、ユーザー レベルの情報が必要な場合に DBA が Active Directory にアクセスできる限り、これは非常に小さな問題です。