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

权限分类
 系统权限:允许用户执行一个或一类特殊的数据库操作,如创建数据库,创建用户,创建于维护表空间以及管理会话等
 对象权限:对象权限是用户维护数据库对象的权利,如维护表,视图,序列号,存储过程,函数等

系统权限
与索引相关
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也丧失权限。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值