Oracle 学习笔记6 —— 权限管理1

1、权限分类

Oracle的权限可以分为系统权限和对象权限。
系统权限是指执行特定类型sql的权限。用于控制用户可以执行的数据库操作。当用户具有CREATE ANY TABLE权限时,可以在任何模式中创建表。系统权限是针对用户而设置的,用户必须被授予相应的系统权限,才可以连接到数据库并进行相应的操作。
对象权限是指在对象级控制数据库的操作的权限,即访问其他用户模式对象的权限。

Oracle数据库允许权限传递,也就是已经具有权限的用户将其权限授予其他用户。Oracle提供了200多种系统权限,可以通过数据字典视图 system_privilege_map查询。

dba可以将系统权限授予用户、角色、public公共用户组。一般情况下,系统权限只能授予信任的用户。
public 公共用户组是在创建数据库时自动创建的用户组。该用户组有什么权限,数据库中所有的用户就具有什么权限。可以利用这个特点,将公共权限授予数据库中所有的用户。

2、系统权限的授权

一般情况下,授予系统权限是有dba完成的;如果要以其他用户身份授予系统权限,则要求改用户必须具有grant any privilege 系统权限,或在相应系统权限上具有 with admin option选项。给用户授予权限的语句如下:

grant system_priv [, system_priv, ...]
to { public | role | user }[, {user | role | public}]...
[with admin option]

其中system_priv 用于指定系统权限,如果指定多个系统权限,需要用逗号分隔; user 用于指定被授权的用户; role 用于指定被授权的角色,如果有指定多角色,需要用逗号分隔。另外,在授予系统权限时可以附加 with admin option选项,使用该选项后,被授权的用户,角色可以将对应的系统权限授予其他用户,角色。

grant create session, create table to [USER_NAME]
with admin option;

grant create view to [USER_NAME];

3、查看系统权限

oracle提供了一些数据字典,以记录数据库中各种权限信息。

DBA_SYS_PRIVS包含了数据库管理员所有用户有的系统权限信息
SESSION_PRIVS包含了当前用户可以使用的权限信息
SYSTEM_PRIVILEGE_MAP 包含了系统中所有的系统权限信息

4、收回系统权限

与授予权限相似,一般收回系统权限的操作也是由dba完成,如果要以其他用户收回系统权限,要有该用户必须具有相应的系统权限以及转授系统权限(with admin option)。收回系统权限关键字为revoke。

revoke system_priv[,system_priv]...
from { public | role | user }[, {user | role | public}]...

revoke create session, create table from USER_NAME;

用户权限被收回后,经过传递获得权限的用户不会被收回。这个和linux的权限不同。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值