Oracle的系统和对象权限 查看用户包含的各类权限

 

Oracle数据库用户权限查询和一些查看操作(汇总)

2018年07月22日 20:32:38 茶木君 阅读数:1222 标签: oracle 更多

个人分类: oracle

dba权限:user为有dba权限的账号,如sys,system,或者是已经被授予dba权限

1.查询用户拥有的系统权限
SQL> SELECT GRANTEE,PRIVILEGE FROM DBA_SYS_PRIVS WHERE GRANTEE = 'SCOTT';(dba权限)

2.查询用户拥有的对象权限
SQL> SELECT GRANTEE,TABLE_NAME,PRIVILEGE FROM DBA_TAB_PRIVS WHERE GRANTEE = 'SCOTT';(dba权限)

3.查询用户拥有的角色
SQL> SELECT GRANTEE,GRANTED_ROLE FROM DBA_ROLE_PRIVS WHERE GRANTEE ='SCOTT';(dba权限)

4.查看用户和默认表空间的关系
select username,default_tablespace from dba_users;(dba权限)
5.Oracle查询用户表
select * from user_tables;-->查看当前用户能访问的表 
select * from dba_tables;-->管理员可以看到的数据库中所有的表(dba权限)
select * from user_all_tables;-->与select * from user_tables;有类似之处不过显示的键值对不一样。
select * from all_tables;-->显示用户有权限看到的所有的表,包括系统表
6.Oracle查询用户视图
select * from user_views;
7.查询所有函数和储存过程:
select * from user_source;
8.查询所有用户:
select * from all_users;-->查看能管理的所有用户
select * from dba_users;-->查看数据库里面所有用户(dba权限)
select * from user_users;-- >查看当前用户信息
9.查看当前用户连接:
select * from v$Session;(dba权限)
10.查看用户角色
SELECT * FROM USER_ROLE_PRIVS;
11.查看当前用户权限:
select * from session_privs;
12.查看所有用户所拥有的角色
SELECT * FROM DBA_ROLE_PRIVS;(dba权限)
13.查看所有角色
select * from dba_roles;(dba权限)
14.查看数据库名
SELECT NAME FROM V$DATABASE;(dba权限)
15.查看所有表空间使用情况
select a.file_id "FileNo",
       a.tablespace_name "Tablespace_name",
       a.bytes "Bytes",
       a.bytes - sum(nvl(b.bytes, 0)) "Used",
       sum(nvl(b.bytes, 0)) "Free",
       sum(nvl(b.bytes, 0)) / a.bytes * 100 "%free"
  from dba_data_files a, dba_free_space b
 where a.file_id = b.file_id(+)
 group by a.tablespace_name, a.file_id, a.bytes
 order by a.tablespace_name;(dba权限)

https://blog.csdn.net/baidu_38760069/article/details/81158360

 

 

oracle的系统和对象权限 查看用户包含的各类权限

2016年07月26日 14:43:23 叽哩古哩 阅读数:5184

查看某个用户在某个对象的权限,可以查dba_tab_privs 或者user_tab_privs

 

如下:某普通用户登陆,查自己的角色

SQL> select * from user_role_privs;

 

查自己拥有哪些系统权限

SQL> select * from session_privs;

查自己可以访问对象的权限

    

SQL>select * from user_tab_privs;

 

 

用sys用户查某用户的系统权限

SQL> select * from dba_sys_privs where grantee='LHOMSMD';

GRANTEE PRIVILEGE ADM

------------------------------ ---------------------------------------- ---

LHOMSMD DEBUG CONNECT SESSION NO

LHOMSMD UNLIMITED TABLESPACE NO

用户的角色

SQL> select * from dba_role_privs where grantee='LHOMSMD';

 

用户的对象权限

SQL> select * from dba_tab_privs where grantee='LHOMSMD' and privilege='EXECUTE'

 

其他相关权限安全的数据字典表有:

  ALL_TAB_PRIVS

  ALL_TAB_PRIVS_MADE

  ALL_TAB_PRIVS_RECD

  DBA_SYS_PRIVS

  DBA_ROLES

  DBA_ROLE_PRIVS

  ROLE_ROLE_PRIVS

  ROLE_SYS_PRIVS

  ROLE_TAB_PRIVS

  SESSION_PRIVS

  SESSION_ROLES

  USER_SYS_PRIVS

  USER_TAB_PRIV

http://space.itpub.net/12778571/viewspace-426953

 

oracle的系统和对象权限

  本文转自: http://hi.baidu.com/zhaojing_boy/blog/item/0ffe95091266d939e824885f.html

       alter any cluster 修改任意簇的权限
  alter any index 修改任意索引的权限
  alter any role 修改任意角色的权限
  alter any sequence 修改任意序列的权限
  alter any snapshot 修改任意快照的权限
  alter any table 修改任意表的权限
  alter any trigger 修改任意触发器的权限
  alter cluster 修改拥有簇的权限
  alter database 修改数据库的权限
  alter procedure 修改拥有的存储过程权限
  alter profile 修改资源限制简表的权限
  alter resource cost 设置佳话资源开销的权限
  alter rollback segment 修改回滚段的权限
  alter sequence 修改拥有的序列权限
  alter session 修改数据库会话的权限
  alter sytem 修改数据库服务器设置的权限
  alter table 修改拥有的表权限
  alter tablespace 修改表空间的权限
  alter user 修改用户的权限
  analyze 使用analyze命令分析数据库中任意的表、索引和簇
  audit any 为任意的数据库对象设置审计选项
  audit system 允许系统操作审计
  backup any table 备份任意表的权限
  become user 切换用户状态的权限
  commit any table 提交表的权限
  create any cluster 为任意用户创建簇的权限
  create any index 为任意用户创建索引的权限
  create any procedure 为任意用户创建存储过程的权限
  create any sequence 为任意用户创建序列的权限
  create any snapshot 为任意用户创建快照的权限
  create any synonym 为任意用户创建同义名的权限
  create any table 为任意用户创建表的权限
  create any trigger 为任意用户创建触发器的权限
  create any view 为任意用户创建视图的权限
  create cluster 为用户创建簇的权限
  create database link 为用户创建的权限
  create procedure 为用户创建存储过程的权限
  create profile 创建资源限制简表的权限
  create public database link 创建公共数据库链路的权限
  create public synonym 创建公共同义名的权限
  create role 创建角色的权限
  create rollback segment 创建回滚段的权限
  create session 创建会话的权限
  create sequence 为用户创建序列的权限
  create snapshot 为用户创建快照的权限
  create synonym 为用户创建同义名的权限
  create table 为用户创建表的权限
  create tablespace 创建表空间的权限
  create user 创建用户的权限
  create view 为用户创建视图的权限
  delete any table 删除任意表行的权限
  delete any view 删除任意视图行的权限
  delete snapshot 删除快照中行的权限
  delete table 为用户删除表行的权限
  delete view 为用户删除视图行的权限
  drop any cluster 删除任意簇的权限
  drop any index 删除任意索引的权限
  drop any procedure 删除任意存储过程的权限
  drop any role 删除任意角色的权限
  drop any sequence 删除任意序列的权限
  drop any snapshot 删除任意快照的权限
  drop any synonym 删除任意同义名的权限
  drop any table 删除任意表的权限
  drop any trigger 删除任意触发器的权限
  drop any view 删除任意视图的权限
  drop profile 删除资源限制简表的权限
  drop public cluster 删除公共簇的权限
  drop public database link 删除公共数据链路的权限
  drop public synonym 删除公共同义名的权限
  drop rollback segment 删除回滚段的权限
  drop tablespace 删除表空间的权限
  drop user 删除用户的权限
  execute any procedure 执行任意存储过程的权限
  execute function 执行存储函数的权限
  execute package 执行存储包的权限
  execute procedure 执行用户存储过程的权限
  force any transaction 管理未提交的任意事务的输出权限
  force transaction 管理未提交的用户事务的输出权限
  grant any privilege 授予任意系统特权的权限
  grant any role 授予任意角色的权限
  index table 给表加索引的权限
  insert any table 向任意表中插入行的权限
  insert snapshot 向快照中插入行的权限
  insert table 向用户表中插入行的权限
  insert view 向用户视图中插行的权限
  lock any table 给任意表加锁的权限
  manager tablespace 管理(备份可用性)表空间的权限
  references table 参考表的权限
  restricted session 创建有限制的数据库会话的权限
  select any sequence 使用任意序列的权限
  select any table 使用任意表的权限
  select snapshot 使用快照的权限
  select sequence 使用用户序列的权限
  select table 使用用户表的权限
  select view 使用视图的权限
  unlimited tablespace 对表空间大小不加限制的权限
  update any table 修改任意表中行的权限
  update snapshot 修改快照中行的权限
  update table 修改用户表中的行的权限
  update view 修改视图中行的权限


-----------------------------------------------------------------------------------
一、权限是用户对一项功能的执行权力。在Oracle中,根据系统管理方式不同,将权限分为系统权限与实体权限两类。系统权限是指是否被授权用户可以连接到数据库上,在数据库中可以进行哪些系统操作。而实体权限是指用户对具体的模式实体(schema)所拥有的权限。这样讲可以有些模糊,举个例子来说:select any table是系统权限,它表示可以查看任何表。而select on table1是实体权限,表示对表table1的查询权限。

二、见上表


三、系统权限授权命令的使用
  语法:
GRANT 权限名 TO 用户|角色|PUBLIC
其中,PUBLIC表示将权限赋给数据库中所有的用户
例:赋给用户USER1权限CREATE TABLE的授权命令如下:
SQL>GRANT CREATE TABLE TO USER1;
授权语句还可以增加WITH ADMIN OPTION选项,表示被授权的用户可以将它所得权限赋给其它用户,如:
SQL>GRANT CREATE TABLE,CREATE VIEW TO USER1,USER2 WITH ADMIN OPTION;
若要了解各用户所拥有的系统权限,可以查询数据字典USER_SYS_PRIVS、ROLE_SYS_PRIVS。
若要回收权限,则使用REVOKE命令,如:
SQL>REVOKE CREATE TABLE FROM USER1;

四、实体权限管理
  实体权限是指某一用户对某一特定schema对象的操作权限。
1.实体权限分类
  不同的实体类型有不同的实体权限,如下表

...........


2.实体权限的授命令

  语法如下:
GRANT 实体权限名|ALL TO 用户|角色|PUBLIC
其中,ALL表示实体的所有实体权限。
如:
SQL>GRANT SELECT ON BOOKS_QUTHORS TO USER1;
以下语句用来查询表的实体权限的授权信息:
SQL>SELECT * FROM USER_TAB_PRIVES
若要回收实体权限,使用REVOKE,其语法如下:
REVOKE 实体权限名|ALL ON 实体名 FROM 用户名|角色名|PUBLIC。

Oracle 查看用户权限

ORACLE中数据字典视图分为3大类,     用前缀区别,分别为:USER,ALL 和 DBA,许多数据字典视图包含相似的信息。

USER_*:有关用户所拥有的对象信息,即用户自己创建的对象信息

ALL_*:有关用户可以访问的对象的信息,即用户自己创建的对象的信息加上其他用户创建的对象但该用户有权访问的信息

DBA_*:有关整个数据库中对象的信息

(这里的*可以为TABLES, INDEXES, OBJECTS, USERS等。

1.查看所有用户:
select * from dba_user;
select * from all_users;
select * from user_users;
2.查看用户系统权限:
select * from dba_sys_privs;
select * from all_sys_privs;
select * from user_sys_privs;
3.查看用户对象权限:
select * from dba_tab_privs;
select * from all_tab_privs;
select * from user_tab_privs;
4.查看所有角色:
select * from dba_roles;
5.查看用户所拥有的角色:
select * from dba_role_privs;
select * from user_role_privs;

6.查看当前用户的缺省表空间
select username,default_tablespace from user_users;

7.查看某个角色的具体权限,如grant connect,resource,create session,create view to TEST;查看RESOURCE具有那些权限,用

SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE='RESOURCE';

https://blog.csdn.net/cuiyan1982/article/details/52035582

 

 

 

 

Oracle查询用户权限角色(dba_sys_privs)

2012年03月16日 09:34:30 launch_225 阅读数:20037 标签: oraclesessionuserdatabase数据库table

Oracle查询用户权限

2009-06-22 16:54

数据字典

1、动态数据字典是以v$xxx开始的数据字典,在数据库中约有150个左右,这些数据字典反映数据库动态运行状况,在不同时间查询会得到不同的结果。

2、DBA数据字典是以DBA_xxx表示,该数据字典存储数据库结构,查询DBA数据字典可以反映数据库结构设置,管理磁盘空间和表空间、事务与回退段、用户与表空间等信息。

3、用户数据字典是以USER_xxx表示,这些数据字典反应用户所创建的实体信息。如,USER_TABLES、USER_VIEWS,数据库管理员具有操作全体用户所有实体的权限,可以查询这类数据字典,了解用户所创建实体状况,必要时可以将用户创建的不正确的实体删除。

4、ALL_xxx类数据字典,表示用户所创建的实体及用户有权可以存取的实体。

 

select privilege from dba_SYS_privs where grantee=‘USERNAME’

Oracle查询用户权限

-- 确定角色的权限
select * from role_tab_privs ;              包含了授予角色的对象权限
select * from role_role_privs ;             包含了授予另一角色的角色
select * from role_sys_privs ;              包含了授予角色的系统权限

-- 确定用户帐户所授予的权限
select * from DBA_tab_privs ;   直接授予用户帐户的对象权限
select * from DBA_role_privs ; 授予用户帐户的角色
select * from DBA_sys_privs ;   授予用户帐户的系统权限


查看当前用户权限:
SQL> select * from session_privs;

PRIVILEGE
----------------------------------------
CREATE SESSION
CREATE TABLE
CREATE CLUSTER
CREATE SYNONYM
CREATE VIEW
CREATE SEQUENCE
CREATE PROCEDURE
CREATE TRIGGER

8 rows selected.

Oracle 本身的数据字典设计我个人觉得很合理, 因为DBA_xxx, ALL_xxx,USER_xxx 让人一看大概就知道这个视图是干什么用的. 本文简要总结了一下与权限,角色相关的视图.

一. 概述

   与权限,角色相关的视图大概有下面这些:

       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:     某个角色被赋予的相关表的权限

       ...   

二. Examples

   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用户权限?


 ORACLE数据字典视图的种类分别为:USER,ALL 和 DBA。

  USER_*:有关用户所拥有的对象信息,即用户自己创建的对象信息

  ALL_*:有关用户可以访问的对象的信息,即用户自己创建的对象的信息加上

其他用户创建的对象但该用户有权访问的信息

  DBA_*:有关整个数据库中对象的信息

  (这里的*可以为TABLES,INDEXES,OBJECTS,USERS等。)

  1、查看所有用户

  select * from dba_user;

  select * from all_users;

  select * from user_users;

  2、查看用户系统权限

  select * from dba_sys_privs;

  select * from all_sys_privs;

  select * from user_sys_privs;

  3、查看用户对象权限

  select * from dba_tab_privs;

  select * from all_tab_privs;

  select * from user_tab_privs;

  4、查看所有角色

  select * from dba_roles;

  5、查看用户所拥有的角色

  select * from dba_role_privs;

  select * from user_role_privs;

  6、查看当前用户的缺省表空间

  select username,default_tablespace from user_users;

  7、查看某个角色的具体权限

  如grant connect,resource,create session,create view to TEST;

  8、查看RESOURCE具有那些权限

  用SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE='RESOURCE'; 

 

https://blog.csdn.net/launch_225/article/details/7359530

 

http://czmmiao.iteye.com/blog/1304934

 

 

你可能感兴趣的:(Oracle)