oracle权限

一、系统权限:

  授予系统权限

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

    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 --查询数据库上的系统权限

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值