与对象权限有关的视图有以下几个,TAB表示表权限,COL表示列权限:USER_TAB_PRIVS_MADEUSER_TAB_PRIVS_RECDALL_TAB_PRIVS_MADEALL_TAB_PRIVS
与对象权限有关的视图有以下几个,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
--结束END--
本文标题: oracle确定被授予的对象权限
本文链接: https://lsjlt.com/news/37384.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-10-23
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0