Oracle 用户管理权限
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,create session,create view to TEST; 8、查看RESOURCE具有那些权限 用SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE=‘RESOURCE‘; oracle的系统和对象权限列表 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 修改视图中行的权限 与权限安全相关的数据字典表有: 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 (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |