アプリケーション レベルのアクセス許可はアプリケーションではなくアプリケーションで管理されるため、使用しているアプリケーションが Windows 認証をネイティブにサポートしておらず、SQL サーバー上で作成される個々のログインに依存しているため、Active Directory グループから SQL サーバー上にユーザーを作成しようとしています。 SQL ロールを使用するよりも。このため、アプリケーションにアクセスする各ユーザーは、アプリケーション データベースが存在する SQL インスタンスに対して独自のユーザーを作成する必要があります。これにより、アプリケーション内でユーザーに個別の権限を割り当てることができます。
以下を使用して、指定した Active Directory グループからユーザーのリストを読み取っています。
exec master..xp_logininfo 'domain\groupname', 'members'
これにより、次のような出力が返されます。
account name type privilege mapped login name permission path
DOMAIN\USER user user DOMAIN\USER DOMAIN\GROUPNAME
ほとんどの場合、このリストに返されるユーザーは、問題なく SQL インスタンスで作成できます。sp_grantlogin
アプリケーション データベースへの新しいログイン アクセスを許可する前に、最初のインスタンスで使用する SQL アカウントとしてユーザーを作成しています。ただし、少数のユーザーが存在しないと報告されています。実行した結果、次のエラーが表示されますsp_grantlogin
。
Msg 15401, Level 11, State 1, Procedure sp_grantlogin, Line 49
Windows NT user or group 'DOMAIN\USER' not found. Check the name again.
明らかに、上記のエラー メッセージでは、実際のユーザー名を削除しています。xp_logininfo
で作成できないユーザーを返すのはなぜsp_grantlogin
ですか? 私が行方不明であることは明らかですか?