oracle 数据字典画报,oracle privilege不得不说的11一个数据字典视图

oracle privilege不得不说的11一个数据字典视图

dba_roles

数据库定义的所有的角色。

SQL> select count(*) from dba_roles;

COUNT(*)

----------

41

我本没有创建什么角色,oracle预置了很多角色,但是oracle不建议简单依赖这些

预定义的角色,而应该根据自己需求自定义角色。

role_tab_privs

分配给角色的表权限。这里的包含的角色是可分配给用户的。

(Information is provided only about roles to which the user has access.)

表结构解释:

role:角色名。

owner:对象的属主。

table_name:对象名。

column_name:列名,如果适用的话。

privilege:授予该角色的对象特权。

grantable:如果该角色带有with admin option,该列是yes,否则是no。

查看OEM_MONITOR的表权限。下面是查询的部分输出。

SQL> select role,table_name,privilege,grantable

2  from role_tab_privs

3  where role='OEM_MONITOR';

ROLE                           TABLE_NAME                     PRIVILEGE                                GRANTABLE

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

OEM_MONITOR                    MGMT_HISTORY                   SELECT                                   NO

OEM_MONITOR                    BSLN_OBSERVATION_SET           EXECUTE                                  NO

OEM_MONITOR                    BSLN_TIMEGROUPS                SELECT                                   NO

OEM_MONITOR                    BSLN_STATISTICS                SELECT                                   NO

OEM_MONITOR                    BSLN                           EXECUTE                                  NO

OEM_MONITOR                    MGMT_BSLN_DATASOURCES          SELECT                                   NO

OEM_MONITOR                    MGMT_BSLN_THRESHOLD_PARMS      SELECT                                   NO

role_sys_privs

角色拥有的系统权限

先创建一个测试角色

SQL> create role testrole;

Role created

SQL> grant create session,alter session,create table,

2  create view,create synonym,create sequence

3  to testrole;

Grant succeeded

查询role_sys_privs确定角色testrole的系统权限。

SQL> select * from role_sys_privs

2  where role='TESTROLE';

ROLE                           PRIVILEGE                                ADMIN_OPTION

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

TESTROLE                       CREATE SESSION                           NO

TESTROLE                       CREATE SYNONYM                           NO

TESTROLE                       CREATE VIEW                              NO

TESTROLE                       CREATE SEQUENCE                          NO

TESTROLE                       CREATE TABLE                             NO

TESTROLE                       ALTER SESSION                            NO

dba_role_privs

查看角色分配给什么对象了。

先将testrole角色分配给oracle11g用户。

SQL> grant testrole to oracle11g;

Grant succeeded

SQL> select * from dba_role_privs

2  where grantee='ORACLE11G';

GRANTEE                        GRANTED_ROLE                   ADMIN_OPTION DEFAULT_ROLE

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

ORACLE11G                      TESTROLE                       NO           YES

从查询可以看出oracle11g用户获得了testrole角色的特权。

再创建一个角色用于测试

SQL> create role testrole1;

Role created

SQL> grant create trigger,create type,create procedure,create operator

2  to testrole1;

Grant succeeded

SQL> grant testrole1 to testrole;

Grant succeeded

查询获得testrole1角色的对象。

SQL> select grantee,granted_role

2  from dba_role_privs

3  where granted_role='TESTROLE1';

GRANTEE                        GRANTED_ROLE

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

TESTROLE                       TESTROLE1

SYS                            TESTROLE1

注:以上5个视图的查询只有DBA才能执行。

user_sys_privs

查看当前用户获得的系统特权。

SQL> show user

User is "oracle11g"

SQL> select * from user_sys_privs;

USERNAME                       PRIVILEGE                                ADMIN_OPTION

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

ORACLE11G                      CREATE SESSION                           NO

不包括从角色获得的系统特权.create session是最初创建用户的时候授予的。

user_tab_privs

查看当前用户的对象特权

SQL> show user

User is "oracle11g"

SQL> select grantee,table_name,privilege,grantable

2  from user_tab_privs;

GRANTEE                        TABLE_NAME                     PRIVILEGE                                GRANTABLE

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

ORACLE11G                      EMPLOYEES                      SELECT                                   NO

从查询可以看出oracle11g拥有hr.employees的查询特权。

user_role_privs

查看用户当前分配到的角色

SQL> select username,granted_role,admin_option,default_role

2  from user_role_privs;

USERNAME                       GRANTED_ROLE                   ADMIN_OPTION DEFAULT_ROLE

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

ORACLE11G                      TESTROLE                       NO           YES

oracle11g用户获得了角色testrole,并且该角色是oracle11g用户的默认角色。

session_roles

当前用户当前启用的角色

SQL> select * from session_roles;

ROLE

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

TESTROLE

TESTROLE1

testrole1是分配给testrole的。

session_privs

查看当前用户具有的特权。

SQL> select * from session_privs;

PRIVILEGE

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

CREATE SESSION

ALTER SESSION

CREATE TABLE

CREATE SYNONYM

CREATE VIEW

CREATE SEQUENCE

CREATE PROCEDURE

CREATE TRIGGER

CREATE TYPE

CREATE OPERATOR

role_tab_privs

查看当前用户具有的通过角色获得的表特权。

先通过角色授权表特权.

SQL> create role tab_role;

Role created

SQL>  grant select,update on hr.employees to tab_role;

Grant succeeded

SQL> grant tab_role to oracle11g;

Grant succeeded

查看通过角色获得的表特权

SQL> select role,table_name,privilege

2  from role_tab_privs;

ROLE                           TABLE_NAME                     PRIVILEGE

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

TAB_ROLE                       EMPLOYEES                      UPDATE

TAB_ROLE                       EMPLOYEES                      SELECT

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值