关闭

oracle权限

标签: oracleconstraintshierarchysystemdatabaseobject
1641人阅读 评论(0) 收藏 举报
分类:

一、系统权限:

  授予系统权限

    要想授予其他用户或者角色系统权限,需要满足下列条件之一:

    1、具有grant any privilege权限

    2、用户被授予权限时带有admin option选项

   grant system_privilege to user_name [with admin option]

 

     --可以同时给用户或者角色授予多个权限或者角色,也可以同时将多个权限或者角色授予给多个用户或者角色

    比如:grant create table,select any transaction to scott,resource;

      --也可以将权限或者角色授予public,public在数据库是一个特殊的模式,任何都将获得被授予public的权限。

    比如:grant flashback any table to public;

    在授予系统权限时可以带有admin option选项。这样被授予此权限的用户也可以将此权限授予其他用户或者角色。

    比如:grant advisor to scott,system with admin option;

     --当同时将多个权限或者角色授予给多个用户或者角色时使用with admin option,with admin option针对所有用户或者角色以及 所有权限或者角色。

    all privileges不是权限,但可是使用all privileges把所有权限授予其他用户或者角色,但不包含select any dictionary权限。

    比如:grant all privileges to scott;

 

    收回权限:

       revoke system_priv  from user_name [cascade constraints]

         --cascade constraints 表示有关联的权限也被收回

     

    从用户收回权限:revoke alter database from scott;

    从角色收回权限:revoke audit system from dba;

    从public收回权限:revoke create database link from public

     可以同时从多个用户或者角色那里收回多个权限或者角色:revoke create any table,resource from scott,dba;

    在收回系统权限时,不会级联收回。


二、对象权限

    索引、集群、触发器、数据库连接没有对象权限,他们通过系统权限进行管理

     对象权限级联收回。
     授予对象权限

       要想授予其他用户对象权限,用户需要满足下列其一条件:

         1、对象的所有者

         2、具有grant any object privilege权限

         3、用户被授予对象权限时带有grant option选项

              grant object_priv  on schema.object to user_name [with grant option] [with hierarchy option]

                       --with hierarchy option 表示对象的子对象上授权给用户,只针对select。

                       -- 可以将同一模式对象上的多个对象权限授予多个用户或者角色,反之亦然。

                          比如:grant select,update on scott.emp  to system,resource,public

                       --在授予对象权限时可以使用grant option选项,允许其他用户将此权限授予其他用户,但在将对象授予角色时不允许带grant option

                         比如:grant insert,index,flashback on scott.emp to system,public  with grant option;

                       --可以使用 all将对象上的所有权限授予其他用户:grant all on scott.emp to public with grant option;

                      --可以授予列权限:grant update(deptno) on scott.emp to system;

      收回对象权限

           revoke object_priv  on schema.object from username [cascade constraints]

            -- 可以将同一模式对象上的多个对象权限从多个用户或者角色收回,反之亦然。

            --在收回对象权限时将级联收回

            --不存在列级收回权限,即使是列级授予权限,也必须表级收回

三、查询用户的权限

    使用下列数据字典查询用户具有的权限

       session_privs              --会话具有的权限

       dba_sys_privs             --可以查询用户具有的系统权限

       dba_tab_privs             --可以查询用户具有的对象权限

       dba_col_privs             --查询用户具有的列级权限

       system_privilege_map --查询数据库上的系统权限

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:47262次
    • 积分:940
    • 等级:
    • 排名:千里之外
    • 原创:48篇
    • 转载:8篇
    • 译文:0篇
    • 评论:0条