千家信息网

oracle确定被授予的对象权限

发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,与对象权限有关的视图有以下几个,TAB表示表权限,COL表示列权限:USER_TAB_PRIVS_MADEUSER_TAB_PRIVS_RECDALL_TAB_PRIVS_MADEALL_TAB_PR
千家信息网最后更新 2024年11月22日oracle确定被授予的对象权限

与对象权限有关的视图有以下几个,TAB表示表权限,COL表示列权限:

USER_TAB_PRIVS_MADE

USER_TAB_PRIVS_RECD

ALL_TAB_PRIVS_MADE

ALL_TAB_PRIVS_RECD

USER_COL_PRIVS_MADE

USER_COL_PRIVS_RECD

ALL_COL_PRIVS_MADE

ALL_COL_PRIVS_RECD

由于以上视图非常类似,所以就拿USER_TAB_PRIVS_MADE,USER_TAB_PRIVS_RECD这两个视图举例。

1.USER_TAB_PRIVS_MADE视图为以下结构,简单的说就是表示当前用户授予其他用户的表权限。

类 型

说 明

grantee

VARCHAR2(30)

该特权所授予的用户

table_name

VARCHAR2(30)

所授予的特权所操作的对象名

column_name

VARCHAR2(30)

所授予的特权所操作的对象名

grantor

VARCHAR2(30)

授权者

privilege

VARCHAR2(40)

对该对象授予的特权

grantable

VARCHAR2(3)

特权所授予的用户是否可以将这种特权再授予其他用户。该值等于YES或NO

2.USER_TAB_PRIVS_RECD视图为以下结构,简单的说就是表示其他用户授予当前用户的表权限。

类 型

说 明

owner

VARCHAR2(30)

拥有该对象的用户

table_name

VARCHAR2(30)

所授予的特权所操作的对象名

grantor

VARCHAR2(30)

授权者

privilege

VARCHAR2(40)

对该对象授予的特权

grantable

VARCHAR2(3)

特权所授予的用户是否可以将这种特权再授予其他用户。该值等于YES或NO

hierarchy

VARCHAR2(3)

特权是否构成层次关系。该值等于YES或NO

我想通过以上两个视图的解释就很明了了,通俗的说以MADE结尾的视图是表示我授予别人的权限,RECD结尾的就是别人授予我的权限。


--查询已授予的对象权限(即某个用户对哪些表对哪些用户开放了对象权限)

以test用户登录,test用户是有dba权限的

SQL> SELECT * FROM user_tab_privs_made; --查出test用户对哪些开放的对象权限

TEST@orcl>SELECT * FROM user_tab_privs_made;GRANTEE              TABLE_NAME          GRANTOR        PRIVILEGE      GRA     HIE------------------------------ ------------------------------ --------------------- -----------------  ------   ------JKWY                INTERFACEUSERS        TEST          SELECT       NO     NO


以test1用户登录,查看当前用户给tom用户分配只有查询dn表权限

SQL> select grantee, owner, table_name, privilege from user_tab_privs;

GRANTEE                 OWNER           TABLE_NAME          PRIVILEGE                          ------------------------------ --------------------- ----------------------   --------------------TOM                    TEST1            DN             SELECT


0