次のサンプル クエリは、セキュリティ ビューを他のビューに結合する方法を示しています。
セキュリティ ビューへの参加
次のクエリでは、セキュリティで保護されたオブジェクトに対してユーザーが持つユーザー名、オブジェクト名、およびクラスのアクセス許可名を一覧表示します。 v_SecuredObject ビューは、ObjectKey 列を使用してv_UserClassPermNames ビューに結合されます。
SELECT UCP.UserName, SO.ObjectName, UCP.PermissionName
FROM v_SecuredObject SO INNER JOIN v_UserClassPermNames UCP
ON SO.ObjectKey = UCP.ObjectKey
ORDER BY UCP.UserName, SO.ObjectName, UCP.PermissionName
セキュリティ ビューとコレクション ビューの結合
次のクエリでは、コレクション ID とコレクション名、ユーザー名、そのコレクションのインスタンスアクセス許可によって、すべてのコレクションが一覧表示されます。 v_Collection コレクション ビューは、CollectionID 列と InstanceKey 列をそれぞれ使用して、v_UserInstancePermNames セキュリティ ビューに結合されます。
SELECT COL.CollectionID, COL.Name AS CollectionName, UIP.UserName,
UIP.PermissionName
FROM v_Collection COL INNER JOIN v_UserInstancePermNames UIP
ON COL.CollectionID = UIP.InstanceKey
ORDER BY COL.CollectionID
上記のクエリからの出力には、個々のコレクションのすべてのインスタンスアクセス許可が一覧表示されます。 ユーザーが collections オブジェクト (すべてのインスタンスを含む) に対するクラスアクセス許可を持っている場合は、コレクション オブジェクトに対するユーザーのすべてのアクセス許可を取得するために、別のクエリを実行する必要があります。 (オブジェクト キー 1 は、コレクション オブジェクトを参照します)。
次のクエリは、 v_UserClassPermNames ビューから実行して、collections オブジェクトのすべてのユーザー クラスのアクセス許可を一覧表示できます。
SELECT UserName, PermissionName
FROM v_UserClassPermNames
WHERE ObjectKey = 1
上記の 2 つのクエリを一緒に使用する場合は、すべてのコレクション クラスとインスタンスに対するユーザーアクセス許可の一覧を取得できます。