oracle 用户查询系统视图需要给啥权限
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 用户查询系统视图需要给啥权限相关的知识,希望对你有一定的参考价值。
比如说 select * from dba_source,select * from dba_profiles; 查询后找不到视图,是哪个权限没有还是其他什么情况,用户已经赋予CONNECT Role, RESOURCE Role,其他还有部分权限就不展示了
你需要赋予这个schema查询所有表的权限:grant select any table to schema_name;
select * from dba_roles; --查看所有系统角色
select * from role_sys_privs where ROLE='SCHEMA'; --查看某个角色包含的权限
select * from dba_sys_privs where GRANTEE='SCHEMA'; --查看某个schema拥有的权限追问
不瞒你说,我是建了一个角色,角色继承了上面的两个角色,同样的我还给了你说的这个权限,然后再把这个角色给了用户,查了后查不到,我才提问的
参考技术A dba才能查询dba视图,grant dba to username.追问这个我知道,但是我需要的是权限
追答那你只有单独授权了
以sys用户登陆(sys用户,其它dba用户不行)
grant select on dba_source to username;
grant select on dba_profiles to username;
难道不能 grant select on XXX to username; xxx为视图组
追答table的话可以 select any table
view的权限 select any view不能执行。
你如果要授权给很多用户,可以自定义一个role角色,然后将查询权限授予角色,再将角色授予用户。
Oracle用户角色权限相关视图
常用相关视图概述
DBA_SYS_PRIVS: 查询某个用户所拥有的系统权限
USER_SYS_PRIVS: 当前用户所拥有的系统权限
SESSION_PRIVS: 当前用户所拥有的全部权限
ROLE_SYS_PRIVS: 某个角色所拥有的系统权限(要以SYS用户登录)
ROLE_ROLE_PRIVS: 当前角色被赋予的角色
SESSION_ROLES: 当前用户被激活的角色
USER_ROLE_PRIVS: 当前用户被授予的角色
针对表的访问权限的视图:
TABLE_PRIVILEGES
ALL_TAB_PRIVS
ROLE_TAB_PRIVS: 某个角色被赋予的相关表的权限
相关视图使用举例
1. 查询当前用户所拥有的权限
select * from session_privs;
2. 查询某个用户被赋予的系统权限.
可以有多种方式
select * from user_sys_privs;
或者:
select * from DBA_SYS_PRIVS where grantee=‘XXX‘ (需要用户拥有DBA角色)
3. 查询当前用户被授予的角色:
1). select * from SESSION_ROLES order by ROLE
说明: 这个查询会返回当前用户所被授予的全部角色, 其中包括嵌套授权的角色. 例如将DBA角色授予了一个用户,DBA角色
已经被授予的角色(例如 exp_full_database 和 imp_full_database)也会被查询出来
2). select * from USER_ROLE_PRIVS
4. 查询某一角色被赋予的系统权限
select Privilege from ROLE_SYS_PRIVS where ROLE=&Role
输入 role=‘CONNECT‘
输出:
PRIVILEGE
--------------------
ALTER SESSION
CREATE CLUSTER
CREATE DATABASE LINK
CREATE SEQUENCE
CREATE SESSION
CREATE SYNONYM
CREATE TABLE
CREATE VIEW
5. 查询当前角色被授予的角色
select GRANTED_ROLE from ROLE_ROLE_PRIVS where ROLE=&ROLE
输入 role= ‘DBA‘
输出:
GRANTED_ROLE
----------------------
DELETE_CATALOG_ROLE
EXECUTE_CATALOG_ROLE
EXP_FULL_DATABASE
IMP_FULL_DATABASE
PLUSTRACE
SELECT_CATALOG_ROLE
说明: PLUSTRACE这个角色是用于执行SQL AUTO TRACE的, 通过执行$ORACLE_HOME/sqlplus/admin/plustrce.sql可以生成这个角色.
以上是关于oracle 用户查询系统视图需要给啥权限的主要内容,如果未能解决你的问题,请参考以下文章