Oracle Database :玩转Oracle学习笔记之(6):权限

来源:互联网 发布:httpclient json 编辑:程序博客网 时间:2024/06/06 02:43
管理权限和角色:
1、介绍:


当用户刚刚被建立时候,用户没有任何权限,也不能执行任何操作,如果要执行某种特定的数据库操作,则必须为其授予系统的权限,如果要用户访问其他方案的对象,则必须为其授予对象的权限,为了简化权限的管理,可以使用角色;

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

一、系统权限:

1)、系统权限介绍:系统权限是指执行特定sql命令的权利,他勇于控制用户可以执行的一个或是一组数据库操作;比如当用户具有create table权限时候,就可以在其方案中建表;当用户具有create any table权限时候,就可以在任何方案中建表;
常有的有:
create session 连接数据库;
create table:建表;
create view:建视图;
create public synonym:建同义词;
create procedure:建过程,函数,包;
create trigger:建触发器;
create cluster:建簇;

2)、显示系统权限:
Oracle提供了很多的权限,而且提供的权限会越来越多;我们就可以查询数据字典视图system_privilege_map,来显示所提供的系统权限;
SQL> select distinct name from system_privilege_map;

3)、授予系统权限;
一般情况下,授予系统权限是有dba完成的,如果用其他用户来授予系统权限,则要求该用户具有grant any privilege的系统权限,在授予系统权限是,可以带有with admin option选项,这样,被授予权限的用户还可以将权限授予个其他用户或者角色;

4)、回收系统权限:
一般情况下,回收系统权限是有dba来完成的,如果用其他的用户回收系统权限,要求该用户必须有相应的系统权限以及转授系统权限的选项(with admin option)。回收系统权限用revoke来完成,当回收后,用户就不能执行相应的操作了,但是这里应该注意回收系统权限的级联性:默认情况下不系统权限不是级联回收的;

比如:system给用户ken授予create session权限,而ken又将该权限授予给了用户tom,当syste回收了ken的create session'权限后,tom还拥有create session权限;这就说明,系统权限不是级联回收的;


二、对象权限:

1)、对象权限介绍:指访问其他方案对象的权利,用户可以直接访问自己方案的对象,但是如果要访问别的方案的对象,则必须具有对象的权限,比如smith用户要访问scott.emp表,则必须在scott.emp表上具有对象的权限;
常用的权限有关:
alter 修改,delete 删除 , select 查询, insert 添加 , update 修改;
index 索引;references 引用;execute 执行;

2)、显示对象权限:
通过数据字典视图可以显示用户或是角色所具有的对象权限,视图为:dba_tab_privs;

3)、授予对象权限:
在Oracle9i之前,授予对象权限是有对象的所有制完成的,如果用其他的用户来操作,则用户需要有相应的(with grant option)权限,从Oracle9i开始,dba(sys,system)用户可以将任何对象上的对象权限授予其他用户,授予对象权限使用grant来完成的;

对象权限可以授予用户,角色和public。在授予权限时候,如果戴上了with grat option选项,则可以将该权限转授给其他用户,但是要注意,with grant option选项不能被授予角色;

scott:
//一般授权;grant select on emp to monkey;grant all on emp to monkey;//精细授权;grante update on emp(sal) to monkey;


4)、授予alter权限(修改表的结构);
conn scott/123;grant alter on emp to monkey;

5)、授予execute权限;

如果用户想要执行其他方案的包、过程、函数,则必须有execute权限;
conn system/123;grant execute on dbms_transaction to ken;

6)、授予index权限;如果想在别的方案中建立索引,则必须有index对象权限;
conn scott/123;grant index on scott.emp to monkey;

7)、使用with grant option选项:

该选项用于转授对象权限,但是该选项只能被授予用户,而不能被授予角色;
sql>conn scott/123sql>grant select on emp to blake with grant option;sql>conn blake/123sql>grant select on scott.emp to joins;

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

这里要说明的是:回收对象权限后,用户就不能让那个执行相应的sql命令,但是要注意的是对象权限是否被级联回收;通过实验,对象权限和系统权限有所不同,系统权限在回收时候不会级联回收,而对象权限在回收时会级联回收;考Oracle数据库管理员的时候经常考试;
原创粉丝点击