ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 管理权限之概念

管理权限之概念

原创 Linux操作系统 作者:xieanxiong_1981 时间:2011-06-10 23:45:37 0 删除 编辑

一、 权限的概念:指执行特定类型的SQL 语句或访问另一个用户的对象的权利。其作用:

连接到数据库

创建表

从另一用户的表中选择行

执行另一用户的已存储过程

二、 权限分类:系统权限和对象权限

(一)   系统权限:每一系统权限都允许用户执行某一特定的数据库操作或某类数据库操作,例如,创建表空间的权限就是一种系统权限。

(二)   对象权限:每一对象权限都允许用户对特定对象(如表、视图、序列、过程、函数或程序包)执行特定的操作。

三、 系统权限:有100多种不同的系统权限;权限中的关键字ANY 表示用户在任何方案中都具备这种权限

(一)   分类:

允许执行系统范围操作的权限;如CREATE SESSIONCREATE TABLESPACE

允许管理用户自己方案中的对象的权限;如CREATE TABLE

允许管理任何方案中的对象的权限;如CREATE ANY TABLE

类别

示例

索引(INDEX)

CREATE ANY INDEX

ALTER ANY INDEX

DROP ANY INDEX

(TABLE)

CREATE TABLE

CREATE ANY TABLE

ALTER ANY TABLE

DROP ANY TABLE

SELECT ANY TABLE

UPDATE ANY TABLE

DELETE ANY TABLE

会话(SESSION)

CREATE SESSION

ALTER SESSION

RESTRICTED SESSION

表空间(TABLESPACE)

 

CREATE TABLESPACE

ALTER TABLESPACE

DROP TABLESPACE

UNLIMITED TABLESPACE

备注:

没有CREATE INDEX 权限。

• CREATE TABLE 包括CREATE INDEX ANALYZE 命令。用户必须有表空间的限额,或必须被授予UNLIMITED TABLESPACE 权限

诸如CREATE TABLECREATE PROCEDURE CREATE CLUSTER 等权限包括删除这些对象的权限。

无法将UNLIMITED TABLESPACE 授予角色。

• DROP ANY TABLE 权限是截断另一方案中的表所必需的。

(二)   授权:

GRANT {system_privilege|role}

[, {system_privilege|role} ]...

TO {user|role|PUBLIC}

[, {user|role|PUBLIC} ]...

[WITH ADMIN OPTION]

其中:

system_privilege:指定要授予的系统权限

Role:指定要授予的角色名

PUBLIC:将系统权限授予所有用户

WITH ADMIN OPTION:允许被授予者进一步为其他用户或角色授予权限或角色

(三)   撤销:撤消系统权限时没有级联效果,这与该系统权限是否使用ADMIN OPTION 授予无关。

REVOKE {system_privilege|role}

[, {system_privilege|role} ]...

FROM {user|role|PUBLIC}

[, {user|role|PUBLIC} ]...

其中:

• REVOKE 命令只能撤消使用GRANT 命令直接授予的权限。

撤消系统权限可能对一些相关对象有影响。例如,如果将SELECT ANY TABLE 予某用户,而该用户已创建了使用其它方案中的表的过程或视图,则撤消该权限些过程或视图无效。

四、 对象权限:

(一)   分类:

对象权限

视图

序列

过程

ALTER

DELETE

 

 

EXECUTE

 

 

 

INDEX

 

 

INSERT

 

 

REFERENCES

 

 

 

SELECT

 

UPDATE

 

 

需要注意的是适用于序列的权限只有SELECT ALTER。通过指定可更新列的子集可以对UPDATEREFERENCES INSERT 权限加以限制。通过用列的子集创建视图并授予对于该视图的SELECT 权限,则可对SELECT 权限加以限制。对于同义词的授权会转换为对于该同义词所引用的基表的授权。

(二)   授权:

GRANT { object_privilege [(column_list)]

[, object_privilege [(column_list)] ]...

|ALL [PRIVILEGES]}

ON [schema.]object

TO {user|role|PUBLIC}[, {user|role|PUBLIC} ]...

[WITH GRANT OPTION]

其中:

object_privilege:指定要授予的对象权限

column_list:指定表或视图列(只在授予INSERTREFERENCES UPDATE 权限

才指定。)

ALL:将所有权限授予已被授予WITH GRANT OPTION 的对象

ON object:标识将要被授予权限的对象

WITH GRANT OPTION:使被授予者能够将对象权限授予其他用户或角色

(三)   撤销:如果对象权限是用WITH GRANT OPTION 授予的,则撤消对象权限也将导致级联效果。

REVOKE { object_privilege

[, object_privilege ]...

| ALL [PRIVILEGES] }

ON [schema.]object

FROM {user|role|PUBLIC}

[, {user|role|PUBLIC} ]...

[CASCADE CONSTRAINTS]

其中:

object_privilege:指定将撤消的对象权限

ALL:撤消已授予用户的所有对象权限

ON:标识将撤消其对象权限的对象

FROM:标识将撤消其对象权限的用户或角色

CASCADE CONSTRAINTS:删除撤消使用REFERENCES ALL 权限定义的任何引用完整性约束

限制:

授予者只能对其已经授予权限的用户撤消对象权限。

五、 相关视图:

DBA_SYS_PRIVS:列出授予用户和角色的系统权限

SESSION_PRIVS:列出用户当前可用的权限

DBA_TAB_PRIVS:列出对于数据库中所有对象的所有授权

DBA_COL_PRIVS:描述数据库中的所有对象-列授权

六、 特殊权限:

(一)   SYSDBA SYSOPER 权限

类别

示例

SYSOPER

RECOVER DATABASE

ALTER DATABASE BACKUP CONTROLFILE TO

ALTER DATABASE OPEN | MOUNT

SHUTDOWN

STARTUP

ALTER DATABASE ARCHIVELOG

RESTRICTED SESSION

SYSDBA

SYSOPER PRIVILEGES WITH ADMIN OPTION

CREATE DATABASE

ALTER TABLESPACE BEGIN/END BACKUP

RESTRICTED SESSION

RECOVER DATABASE UNTIL

(二)   系统权限限制

O7_DICTIONARY_ACCESSIBILITY 参数

控制有关SYSTEM 权限的限制

如果设置为TRUE,允许访问SYS 方案中的对象

缺省值为FALSE:可确保允许访问任何方案的系统权限不允许访问SYS 方案

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9333283/viewspace-697640/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 管理权限之操作
全部评论

注册时间:2009-10-20

  • 博文量
    8
  • 访问量
    11584