您的位置:首页 > 数据库 > Oracle

oracle-dba-系统和对象权限管理

2017-03-03 23:24 627 查看
权限分类

 系统权限:允许用户执行一个或一类特殊的数据库操作,如创建数据库,创建用户,创建于维护表空间以及管理会话等

 对象权限:对象权限是用户维护数据库对象的权利,如维护表,视图,序列号,存储过程,函数等

系统权限

与索引相关

Create any index

Alter any index

Drop any index

Create table权限中包含了Create index权限

与表相关

 Create table

 Create any table

 Alter any table

 Drop any table

 Select any table

 Update any table

 Delte any table

创建表时必须为表分配表空间配额,或者对表空间具有无限制使用权利。

如:unlimited tablespace;

会话相关

Create session

Alter session

一个新用户创建后,需要授予session权限才能访问数据库

与表空间相关

 Create tablespace

 Alter tablespace

 Drop tablespace

 Unlimited tablespace:允许使用所有表空间的权限

授予用户权限

GRANT {system_privilege|role}

[,{system_privilege|role}]……

To {user|role|PUBLIC}

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

[WITH ADMIN OPTION]

创建用户并设置密码

Create user jane identified by abc123#;

赋予用户权限

Grant create session,create table,select any table to jane;

Select * from dba_sys_privs where grantee=’JANE’;

回收用户权限

Revoke create session,select any table,create table from jane;

部分权限授予所有用户

Grant create session,select any table to public;

查看用户系统权限

Select * from dba_sys_privs where frantee=’用户’;

SYSDBA和SYSOPER系统权限

SYSDBA权限

SYSOPER PRIVILEGES WITH ADMIN OPTION:具有sysoper所具有的操作,并且可以将这些操作授予其他用户

 CREATE DATABASE :创建数据库

 ALTER DATABASE BEGIN/END BACKUP:将数据库置于备份状态

 RESTRICTED SESSION:设置会话限制

 RECOVER DATABASE UNTIL:介质恢复数据库到UNTIL指定的状态

SYSOPER权限

 STARUP:启动数据库

 SHUTDOWN:关闭数据库

 ALTER DATABASE OPEN |MOUNT:数据库切换到打开|挂起状态

 ALTER DATABASE BACKUP CONTROLFILE TO:备份控制文件

 RECOVER DATABASE:介质恢复数据库

 ALTER DATABASE ARCHIVELOG:数据库设置为归档模式

回收用户权限

REVOKE {system_privilege|role}

[,{system_privilege|role}]……

FROM {user |role|PUBLIC}

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

查看用户系统权限

Select * from dba_sys_privs where grantee in (‘JANE’,’LARRY’) ORDER BY grantee;

回收用户权限

Revoke create session from larry;

用户1授权给用户2,用户2授权给用户3,用户1回收用户2的权限后,用户3还依然有用户2之前的权限,说明权限不具备级联特性。

回收所有用户的系统权限

Revoke create session from PUBLIC;

授予对象权限

和系统权限相对应的是对象权限,对象包括表,视图(物化视图),序列号,存储过程等。

在这些数据库对象上实现某种特殊的行为的权限称为对象权限。如删除表

对象权限包括:alter,delete ,execute,index,insert,references,select,update

数据库对象的权限与对应的数据库对象关系的列表

表:具备出execute的所有权限

视图:具备除alter,execute,references所有权限

序列号:具备alter,select

过程:具备alter,execute

GRANT {object_privilege[(column_list)] }

[,{object _privilege[(column_list)]]……

| ALL [PRIVILEGE]

ON [schema.]object

To {user|role|PUBLIC}

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

[WITH GRANT OPTION]

 GRANT:授权关键字

 OBJECT_PRIVILEGE:对象权限

 COLUMN_LIST:对象权限操作的列的列表

 ALL:当前用户的某个数据库对象的所有权限赋予给用户

 ON OBJECT:说明具体的数据库对象,如表|存储过程

 WITH GRANT OPTION:新用户可以继续授权

将scott用户的表的update权限赋予给用户

Grant update on 表 to 用户 with grant option;

查看scott用户中表对象的授权信息

Select * from user_tab_privs_made;

把对表dept的列的update对象权限授予给用户

Grant update (列1,列2) on 表 to 用户;

查看用户对列的权限授予信息

Select * from user_col_privs_made;

回收对象权限

REVOKE {object_privilege[,object_privilege]….

|ALL[PRIVILEGE]}

ON [schema.] object

From {user|role|PUBLIC}

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

[CASCADE CONSTRAINTS]

回收用户对表的update权限

Revoke update on emp from larry;

验证是否回收

Select * from user_tab_privs_made where grantee=’LARRY’;

回收用户对dept表的所有权限,只能从整个表回收对象权限,不能按照列回收。此种方式间接回收了列的权限

Revoke all on dept from 用户名

Select * from user_col_privs_made where grantee=’LARRY’;

对象权限回收是级联的。如用户1授权给用户2,用户2授权给用户3,用户1回收用户2的权限,间接的用户3也丧失权限。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: