1. 程式人生 > >Oracle的系統和物件許可權 檢視使用者包含的各類許可權

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