ORACLE用户权限

数据字典

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.

. 概述

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

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‘;

时间: 2024-10-12 12:32:22

ORACLE用户权限的相关文章

Oracle 用户权限管理方法

Oracle 用户权限管理方法 sys;//系统管理员,拥有最高权限 system;//本地管理员,次高权限 scott;//普通用户,密码默认为tiger,默认未解锁 sys;//系统管理员,拥有最高权限 system;//本地管理员,次高权限 scott;//普通用户,密码默认为tiger,默认未解锁 二.登陆 sqlplus / as sysdba;//登陆sys帐户 sqlplus sys as sysdba;//同上 sqlplus scott/tiger;//登陆普通用户scott 

ORACLE用户权限管理

参考整理自:http://docs.oracle.com/cd/B19306_01/network.102/b14266/admusers.htm#i1006856 只挑干货讲!!! 一 用户管理 1.创建用户 create user dylan identified by 123 default tablespace users  --指定表空间 quota 100m on users       --指定配额 temporary tablespace temp  --指定临时表空间 prof

Oracle用户权限分配

一.权限分类 系统权限:系统规定用户使用数据库的权限.(系统权限是对用户而言). 实体权限:某种权限用户对其它用户的表或视图的存取权限.(是针对表或视图而言的). 二.系统权限管理 1.系统权限分类: DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构. RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构. CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构. 对于普通用户:授予conne

数据库(学习整理)----2--关于Oracle用户权限的授权和收权

知识点: 1.Oracle数据库中所用的用户等级是平级的!只是每个用户的权限不同而已! 2.在一个用户登录后,可以在自己的登录状态下访问其他用户的数据缓冲区.表.以及表的操作!(只要该用户用权限!) 3.我们可以在一个有创建用户权限的用户登录后,进行创建(赋予权限等)操作,创建后的用户和当前用户是平级的!权限不同而已!(1).使用 sysDBA登录 创建一个Jason用户,密码:abc123 SQL语句: create user Jason identified by abc123; 执行后效果

oracle 用户权限设置

create user +用户名 identified by +密码 default tablespace +表空间名称 temporary tablespace +临时表空间名称 --创建新用户  在oracle之后 普通用户的用户名必须以C##开头(如果不指定表空间,该用户的表空间为系统默认的表空间) create tablespace +表空间名称 +datafile +存储路径+ size 表空间大小(单位m)--创建表空间 alter tablespace 旧名称 rename to

ORACLE 用户权限管理

Oracle创建用户的语法: CREATE USER username IDENTIFIED BY password OR IDENTIFIED EXETERNALLY OR IDENTIFIED GLOBALLY AS 'CN=user' [DEFAULT TABLESPACE tablespace] [TEMPORARY TABLESPACE temptablespace] [QUOTA [integer K[M] ] [UNLIMITED] ] ON tablespace [,QUOTA

Oracle 用户权限分配说明

一般来说,Oracle普通用户创建后,不建议分配DBA权限.那么一般分配哪些权限呢? 首先来说,一个Oracle普通用户,我们一般性的要求是:   1.能够在本用户下进行本用户相关的创建表结构,数据维护.   2.能够访问其他用户的表(看系统属性).   所以,一般采用以下语句: grant connect,resource to base;//设置对本地资源的控制权限, grant create session to base;//设置可以通过工具访问该用户 grant select any

oracle用户权限的问题

一.创建用户 create user username identified by password --username 创建的用户的名称 --password 创建的用户的密码 二.赋权限 grant connect,resource to username --username 要被赋权限的用户名 --授予权限connect(连接权限).resource(操作权限) 如果想让用户获得最高权限,使用下面的语句: grant dba to username --username 要被赋权限的用

oracle 用户权限相关

--查看数据库下的所有用户: select username from dba_users; --查看当前连接数据库的用户角色 SELECT * FROM USER_ROLE_PRIVS; -- 创建用户 CREATE user test identified by test; -- 赋授权 grant connect,resource to test; --赋给只允许连接查看的权限 grant connect,resource to test; --赋给普通权限 开发运维基本已经满足 gran