2011年12月22日 星期四(oracle读书笔记)

来源:互联网 发布:快乐潮爷网络视频 编辑:程序博客网 时间:2024/05/20 13:13
 

1.       系统权限是指能够执行特定sql命令的权利,它用于控制用户可以执行的一个或者一组数据库操作。比如当用户具有create table的权限可以在自己的方案中建立表,当用户具有create any table的权限的时候,可以在任何方案中建表。

2.       授予系统权限一般都是由dba用户来完成的,如果用其他用户来授予系统权限,则要求该用户必须具有grant any privilege的系统权限。在授予系统权限的时候,可以使用with admin option来使得接受系统权限的用户可以继续传递系统权限。

3.       回收系统权限是由dba完成的,如果用其他用户回收系统权限,则该用户必须具有相应的系统权限以及转授系统权限的选项(with admin option)。回收系统权限使用revoke。

同时需要注意当系统权限进行回收时的级联回收问题。

注:系统权限的回收不是级联回收。

4.       对象权限是指访问其他方案的权利,当然前提是具有访问其他方案的权限。

注:通过数据字段视图可以显示用户或者角色所具有的对象权限。视图为dba.tab.privs

5.       对象权限可以授予角色、用户、public。如果在授予A用户的时候,添加with grant option选项,则可以将权限转授给其他用户。注意:with grant option 不能授予给角色。

6.       登录数据库系统的系统权限为create session。

7.       仅授予A用户操作B表的C字段:grant update on B(C) to A;

8.       如果A用户想操作B用户方案的包、过程、函数。那么A用户必须具备execute权限。

9.       如果想授予A用户能在B用户的C表中创建索引,则需要授予A用户给B表创建索引的权限。

grant index on B.C  to  A;

10.   收回对象权限同样是使用revoke命令,但是对象权限的回收是级联回收操作。

11.   预定义角色是指oracle所提供的角色,每种角色都用于执行一些特定的管理任务。

1)  Connect角色具有一般开发人员所具备的大部分权限,当建立一个用户后,给该用户授予connect和resource角色就可以了。Connect角色的系统权限包括 create session、alter session、create cluster(创建组) 、create database link、create table 、create view 、create sequence(创建序列)。

2)  Resource角色具有应用开发人员所需要的其他权限、比如建立存储过程、创建触发器等,同时resource角色隐含了unlimited tablespace(无限制表空间)系统权限。Resource角色具有如下权限:create cluster;create indextype;create table;create sequence;create type;create procedure;create trigger;

3)  Dba角色具有所有的系统权限,以及with admin option选项,但是dba角色不具备sysdba和sysoper的特权(启动和关闭数据库)

12.   自定义角色一般都是由dba进行创建,如果A用户想创建角色,那么A用户必须具有create role的权限。在创建角色的时候,可以指定该角色在进行修改的时候,是否需要进行验证。

1)  Create role rolename not identified;

2)  Create role rolename identified by rolepassword;

13.   给角色授权和给用户授权基本相同,不同的地方在于系统权限unlimited tablespace和对象权限with admin option两种系统权限不能授予给角色。

14.   将角色授予用户通常都是有dba完成的,如果需要A用户完成角色的授权,则A用户需要具有grant any role的权限。

Grant rolename to A with admin option;意为A用户同样具有将角色rolename传递给其他用户的权限。

15.   删除角色使用命令drop role一般是dba来执行。如果A用户想拥有删除角色的权限,则A用户必须drop any role的系统权限。

注:如果某一个角色被删除了,那么拥有该角色的权限的用户就不能再使用这些权限了。

16.   显示所有角色:select * from dba_roles;

17.   显示角色具有的系统权限

Select privilege,admin_option from role_sys_privs where role= ‘rolename’;

18.   显示用户具有的角色,以及默认角色

Select granted_role,default_role from dba_role_privs where grantee= ‘username’;