3

ユーザーがWindowsグループを介してSQLServerにログインできるシナリオがあります。ユーザー自体にはログインもデータベース内のユーザーもありません。

次に、ユーザーがログに記録されるWindowsグループの名前を取得したいと思います。ただし、suser_sname()実際のユーザー名を返します。suser_sid()私も助けにはなりません。

誰かがこれを行う方法を知っていますか?

4

1 に答える 1

5
DECLARE @user SYSNAME;
SET @user = SUSER_SNAME();
EXEC xp_logininfo @user, 'all';

これにより、ユーザーが所属するすべてのグループの行が返されます(行の列にはnull以外の値が含まれpermission pathます)。ただし、自分のユーザー名の行も返します(私の場合permission path、その行はnullでした)。

また、次のクエリで表示される可能性のあるすべてのグループを表示できます。

SELECT * FROM master.sys.server_principals
  WHERE type = 'G'; -- type_desc = 'WINDOWS_GROUP'

ユーザーは、SQLServerに登録されていない他のADグループのメンバーである可能性もあります。そのためにはADに行く必要があります。

于 2013-03-26T22:45:35.357 に答える