DB Oracle - comment afficher privs travers des schémas et des propriétaires?
J'ai un propriétaire et Un propriétaire de B dans la base de données. Chacun d'eux a ses propres schémas, etc. Si je accorder des droits à un utilisateur à partir de B (il a par exemple l'accès à certains point de vue sous A), est-il un moyen pour afficher privs comme ça? Je veux dire, un utilisateur dispose de certains droits en vertu de chaque DB du propriétaire et de ses schematas.
La raison est que j'aurais besoin pour être sûr qu'aucun utilisateur sous B a accès à n'importe quel objet en vertu de l'A.
Merci beaucoup
EDIT: Pour plus de question claire:
Sceham owner A Schema owner B
Table X Table CC
Table Y Table DD
View Z View EE
Maintenant dire que l'utilisateur John a accès à des schémas de sous propriétaire d'Une, mais aussi d'un point de vue sous schéma appartenant à Oracle propriétaire B. Comment ai-je pu la liste de ses droits à travers des schémas?
Vous devez vous connecter pour publier un commentaire.
Dans Oracle un utilisateur de schéma (UTILISATEUR=SCHÉMA).
Vous pouvez interroger le dictionnaire de table
DBA_TAB_PRIVS
pour voir ce que les utilisateurs/rôles ont accès. Alternativement, si vous êtes connecté en tant qu'utilisateur A, en interrogeantUSER_TAB_PRIVS
vous permettra de voir les utilisateurs/rôles ont accès à vos objets (tables, des procédures, des packages, etc...).Si un privilège est donné à un rôle, vérifiez
DBA_ROLE_PRIVS
de voir l'utilisateur ayant ce rôle.Enfin, vérifiez
DBA_SYS_PRIVS
pour voir si certaines privilège est accordé à un utilisateur/rôle. La plupart des droits globaux ontANY
en son nom (SELECT ANY TABLE
,EXECUTE ANY PROCEDURE
...). Mondial privilèges priment les privilèges individuels et peut vous permettre d'accéder directement ou indirectement, des données sur l'ensemble des schémas.Cela devient un peu plus compliqué étant donné que l'un rôle peut être attribué à un autre rôle. Cette requête affichera la liste de tous les objets de schéma accessible à l'utilisateur JOHN:
Vous devez utiliser l'un de l'administrateur de vues pour ce faire.
Si vous utilisez les rôles ensuite, vous pouvez également vouloir vérifier que:
Comme ceci:
Vous pourriez omettre le filtre sur le PROPRIÉTAIRE. Une semblable tweak sur la deuxième requête va vous donner des rôles accordés à travers des schémas.
Tout d'abord créer un échantillon d'utilisateurs de "user_a" et "user_b'":
Maintenant se connecter en tant que USER_A et de créer des exemples d'objets:
Puis se connecter en tant que USER_B'et de créer des exemples d'objets:
Et enfin de se connecter à l'arrière comme USER_A une recherche de subventions pour sa table TBL_A:
Est:
Maintenant grant select sur la vue VIEW_A pour USER_B':
Et, de nouveau, essayez de rechercher des subventions pour USER_B'pour objet de vue VIEW_A de USER_A:
Et maintenant le résultat est: