のMSDNドキュメントにsys.database_permissions
は、状態列は「G」、「D」、「R」、または「W」のいずれかであると記載されています。'R'値には'REVOKE'の説明があり、この値を持つ行が取り消された権限に対応するように聞こえます。ただし、のドキュメントREVOKE
からわかるように、権限を取り消すと完全に削除されるため、から行を削除するだけでよいと思いsys.database_permissions
ます。これは、許可の付与と取り消しをテストしたときに起こったことです。GRANT
許可がそのビューに表示された後、およびそれREVOKE
が消えた後。
私の質問:このビューには、状態が「R」に設定された行が含まれるのはどのような状況ですか?コードでこのビューを調べるときに「R」行を処理する必要があるかどうかわからないため、これを求めています。
これが発生する可能性のあるいくつかの潜在的なシナリオを考えることができますが、確認は見つかりませんでした。
- 包括的権限を付与してから、包括的権限によって暗示されるより詳細な権限を取り消すと、「R」行が表示される場合があります(詳細な権限は「R」として表示されます)。これまでのところ、そのような権限は見つかりませんでした。
- SQLがコマンドを処理している間、「R」行が非常に短時間表示さ
REVOKE
れ、行全体が消える場合があります。私はこれを観察していませんが、おそらくそれが現れる時間の非常に小さなウィンドウしかありません。