How to see what privileges are granted to schema of another user

后端 未结 3 377
无人及你
无人及你 2021-01-31 18:18

Consider the case : In a database , I have two users A and B and their corresponding schema.

I want to know , How can I get the information : what permissions are there

相关标签:
3条回答
  • 2021-01-31 18:31

    You can use these queries:

    select * from all_tab_privs;
    select * from dba_sys_privs;
    select * from dba_role_privs;
    

    Each of these tables have a grantee column, you can filter on that in the where criteria:

    where grantee = 'A'
    

    To query privileges on objects (e.g. tables) in other schema I propose first of all all_tab_privs, it also has a table_schema column.

    If you are logged in with the same user whose privileges you want to query, you can use user_tab_privs, user_sys_privs, user_role_privs. They can be queried by a normal non-dba user.

    0 讨论(0)
  • 2021-01-31 18:35

    Use example with from the post of Szilágyi Donát.

    I use two querys, one to know what roles I have, excluding connect grant:

    SELECT * FROM USER_ROLE_PRIVS WHERE GRANTED_ROLE != 'CONNECT'; -- Roles of the actual Oracle Schema

    Know I like to find what privileges/roles my schema/user have; examples of my roles ROLE_VIEW_PAYMENTS & ROLE_OPS_CUSTOMERS. But to find the tables/objecst of an specific role I used:

    SELECT * FROM ALL_TAB_PRIVS WHERE GRANTEE='ROLE_OPS_CUSTOMERS'; -- Objects granted at role.

    The owner schema for this example could be PRD_CUSTOMERS_OWNER (or the role/schema inself).

    Regards.

    0 讨论(0)
  • 2021-01-31 18:50

    Login into the database. then run the below query

    select * from dba_role_privs where grantee = 'SCHEMA_NAME';

    All the role granted to the schema will be listed.

    Thanks Szilagyi Donat for the answer. This one is taken from same and just where clause added.

    0 讨论(0)
提交回复
热议问题