oracle进阶——权限

前言

在oracle中创建的新用户是没有任何权限的,甚至连登录到数据库的权限都没有,需要dba为其赋予相应的权限。

 

权限的划分

权限是指执行特定类型sql命令或是访问其它方案对象的权利,包括 系统权限 和 对象权限 两种。

1、系统权限

系统权限是指执行特定类型sql命令的权利(用户对数据库的相关权限)。它用于控制用户可以执行的一个或是一组数据库操作。比如当用户具有create table权限时,可以在其方案中建表,当用户具有create any table权限时,可以在任何方案中建表。

oracle提供了140多种系统权限。常用的有:

create session

连接数据库

create table

建表

create view

建视图

create public synonym

建同义词

create procedure

建过程、函数、包

create trigger

建触发器

create cluster

建簇

 


显示系统权限

oracle提供了140多种系统权限,而且oracle的版本越高,提供的系统权限就越多,我们可以查询数据字典视图 system_privilege_map,可以显示所有系统权限。

select * from system_privilege_map order by name;

授予系统权限

用法:grant 系统权限 to 用户名 with admin option;

一般情况,授予系统权限是由dba完成的,如果用其他用户来授予系统权限,则要求该用户必须具有 grant any privilege 的系统权限。在授予系统权限时,可以带有 with admin option 选项,这样,被授予权限的用户或是角色还可以将该系统权限授予其它的用户或是角色。


回收系统权限

用法:revoke 系统权限 from 用户名;

一般情况下,回收系统权限是dba来完成的,如果其它的用户来回收系统权限,要求该用户必须具有相应系统权限及转授系统权限的选项(with admin option)。回收系统权限使用revoke来完成。

当回收了系统权限后,用户就不能执行相应的操作了,但是请注意,系统权限级联收回的问题?[不是级联回收!]

 

2、对象权限

对象权限是指访问其它方案对象的权利(用户对其他用户的数据对象操作的权限),用户可以直接访问自己方案的对象,但是如果要访问别的方案的对象,则必须具有对象的权限。

常用的对象权限

alter修改
delete删除 
select查询
insert添加
update修改
all(insert ,delete ,update ,select)4个对象权限的集合
index索引 
references引用
execute执行

 


显示对象权限

通过数据字段视图(dba_tab_privs)可以显示用户或是角色所具有的对象权限。

conn system/manager;

select distinct privilege from dba_tab_privs;

select grantor, owner, table_name, privilege from dba_tab_privs where grantee = 'BLAKE';

授予对象权限

用法:grant 对象权限 on 方案名.表名 to 用户名 with admin option;

在oracle9i前,授予对象权限是由对象的所有者来完成的,如果用其它的用户来操作,则需要用户具有相应的(with grant option)权限,从oracle9i开始,dba用户(sys,system)可以将任何对象上的对象权限授予其它用户。授予对象权限是用grant 命令来完成的。

对象权限可以授予用户角色,和public。在授予权限时,如果带有with grant option选项,则可以将该权限转授给其它用户。但是要注意with grant option选项不能被授予角色。


回收对象权限

用法:revoke 对象权限 on 方案名.表名 from 用户名;

在oracle9i中,收回对象的权限可以由对象的所有者来完成,也可以用dba用户(sys,system)来完成。

这里要说明的是:收回对象权限后,用户就不能执行相应的sql命令,但是要注意的是对象的权限是否会被级联收回?【级联回收】

注:对象权限的回收和系统权限的回收刚好相反,对象权限是级联回收,而系统权限是不级联回收!

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值