データベースのSecurity/Usersフォルダーには、「MyApplication Users」を含む多数のセキュリティグループがあります。自分がこのグループにいる(または別のユーザーがいる)かどうかを確認する必要がありますが、クエリを実行する方法や、この情報を表示できる場所はわかりません。プロパティを調べてみましたが、何も見つかりませんでした。何か案は?
自分または現在のユーザーの確認:
SELECT IS_MEMBER('[group or role]')
1 = yes、0 = no、およびnull =照会されたグループまたはロールの結果は無効です。
ユーザーのリストを取得するには、拡張procが有効で、問題のグループがWindowsグループである場合、xp_logininfoを試してください:
EXEC master..xp_logininfo
@acctname = '[group]',
@option = 'members'
現在のユーザーがどのグループ/ロールのメンバーであるかをすばやく表示するには、
select
[principal_id]
, [name]
, [type_desc]
, is_member(name) as [is_member]
from [sys].[database_principals]
where [type] in ('R','G')
order by [is_member] desc,[type],[name]
DeanG から受け入れられた回答は、SQL Server内でこの情報を取得するための推奨ソリューションです
これにはActive Directoryツールを使用できます。 Remote Server Administration Tools の一部であるActive Directoryユーザーとコンピューターが好きです。リンクに従って、Windows 7にツールをダウンロードしてインストールします。
インストールしたら、特定のグループ名を検索できます。
次に、Membersタブを使用してグループメンバーシップを確認できます。
RSAツールにパッケージ化されたADブラウザを使用したくない場合は、他にもいくつかの方法があります。
あなたはしません。
代わりに、ユーザーとグループを使用して特権を付与/拒否し、エンジンがそれらを適切に実施できるようにします。あなた自身のセキュリティをロールバックしようとすると、どこにも速く行かないでしょう。当たり前の例は、「1つの拒否がすべての助成金に勝つ」ルールを順守しない場合です。そして、EXECUTE ASの複雑な操作は失敗します。モジュール署名に基づくセキュリティは言うまでもありません。
レコードの場合:ユーザー、ロール、およびグループは sys.database_principals
カタログビュー。 sys.fn_my_permissions
は、特定のセキュリティ保護可能なオブジェクトの現在のコンテキスト許可を返します。
インスタンス内のADグループメンバーを見つけるには、以下のクエリを使用できます。
xp_logininfo 'DomainName\AD_GroupName', 'members'
このクエリを使用すると、次の状態を見つけることができます。
account name, type, privilege, mapped login name, permission path