Oracle(16)Managing Privileges

本文详细介绍了Oracle数据库中的系统权限(如CREATESESSION,DROPANYTABLE等)和对象权限(如SELECT,INSERT等)的管理,包括如何授予和撤销权限,以及不同角色在权限操作中的作用。重点强调了ADMINOPTION和GRANTOPTION的区别。
摘要由CSDN通过智能技术生成

目录

一、基础知识

1、Managing Privileges管理权限

2、System Privileges 系统特权

3、System Privileges : Example系统权限:示例

4、Who Can Grant or Revoke? 谁可以授予或撤销权限?

5、The PUBLIC

6、SYSDBA and SYSOPER

7、Revoke with ADMIN OPTION 使用ADMIN OPTION撤消

8、Some Points 一些系统权限要点

9、Revoke with GRANT OPTION 使用GRANT OPTION撤消

10、Some Points 一些对象权限要点

二、基础操作

1、Granting System Privileges 授予系统权限

2、Revoking System Privileges 撤销系统权限

3、Granting Object Privileges 授予对象权限

4、Revoking Object Privileges 撤销对象权限


Managing Privileges 管理权限

目标:

  • 识别系统和对象权限
  • 授予和撤销特权
  • 获取权限信息

一、基础知识

1、Managing Privileges管理权限

有两种类型的甲骨文用户特权:

  • System系统:使用户能够在数据库中执行特定的操作
  • Object对象:使用户能够访问和操作特定对象

2、System Privileges 系统特权

  • 有超过100个不同的系统权限
  • privileges中的ANY关键字表示用户在任何架构中都有权限(给予ANY特权要慎重)
  • GRANT命令将特权添加到一个用户或一组用户
  • REVOKE命令删除特权。

3、System Privileges : Example系统权限:示例

在INDEX中没有普通的CREATE INDEX权限,因为在个CREATE TABLE创建表权限的时候就授予了创建索引的权限。

4、Who Can Grant or Revoke? 谁可以授予或撤销权限?

只有两种类型的用户可以向其他用户授予系统权限或撤销这些权限:

  • 使用ADMIN选项授予特定系统权限的用户
  • 具有系统权限的用户授予任何权限

只将这些特权授予受信任的用户。

5、The PUBLIC

PUBLIC是数据库中定义的用户组;它不是数据库用户或角色。数据库中的每个用户都属于这个组。因此,如果将特权授予PUBLIC,则数据库的所有用户都可以使用这些特权。

6、SYSDBA and SYSOPER

7、Revoke with ADMIN OPTION 使用ADMIN OPTION撤消

当我们撤销权限时,只撤销用户本身的权限,不会级联撤销用户已经授予的权限

8、Some Points 一些系统权限要点

  • 要连接到数据库,您需要CREATESESSION特权
  • 要删除属于另一个模式的表,您需要DROP ANY TABLE特权。
  • CREATE ANY PROCEDURE (或EXECUTE ANY PROCED) 特权许用户创建、替换或删除 (或执行) 过程、包和函数,这包括Java类。(这个要特别注意,可能会利用系统bug创建dba权限)
  • CREATETABLE特权使您能够在模式中创建、更改、删除和查询表。
  • SELECT、INSERT、UPDATE和DELETE是对象特权,SELECTANYINSERTANY、UPDATEANY和DELETEANY是系统特权 (换话说它们不应用于特定对象)

9、Revoke with GRANT OPTION 使用GRANT OPTION撤消

10、Some Points 一些对象权限要点

  • 对象特权可以授予用户、角色或PUBLIC。
  • 如果一个视图引用其他用户的表或视图,则必须对该视图的基础表具有WITH GRANT OPTION权限,才能将该视图的任何权限授予其他用户。例如,JOHN拥有一个视图,该视图引用了JAMES中的一个表。要将视图上的SELECT权限授予另一个用户,JOHN应该已经收到了表WITH GRANT OPTION上的SELECT权限。
  • 在表上接收到的任何对象特权都为被授予者提供锁定表的特权。
  • 不能在列上指定SELECT权限;若要授予列级SELECT权限,请创建具有所需列的视图,并在视图上授予SELECT权限。
  • 您可以指定所有或所有特权来授予对象上的所有可用特权(例如,将所有客户的权限授予James)。
  • 即使您具有DBA权限,要在其他用户拥有的对象上授予权限,您必须已被授予该对象的适当权限WITHGRANTOPTION。
  • 可以在一条语句中向多个用户和/或角色授予多个特权。例如,GRANTINSERT、UPDATE、选择客户到管理角色、JULIE、SCOTT;

二、基础操作

1、Granting System Privileges 授予系统权限

  • 使用GRANT命令授予系统特权。
GRANT CREATE 权限名(例如:SESSION) TO 用户名;
  • 被授予者可以通过ADMIN选项进一步授予系统特权。 
GRANT CREATE 权限名(例如:SESSION) TO 用户名 WITH ADMIN OPTION;

2、Revoking System Privileges 撤销系统权限

  • 使用REVOKE命令删除用户的系统特权。
  • 具有ADMIN OPTION系统权限的用户可以撤销系统权限
  • 只有通过GRANT命令授予的特权才能被撤销。
REVOKE 权限名(例如:CREATE TABLE)FROM 用户名;

3、Granting Object Privileges 授予对象权限

  • 使用GRANT命令授予对象权限
  • 授予必须在设保人的模式或设保人必须有GRANT OPTION。
GRANT EXECUTE ON 对象名(例如一个表:这里就写表名) To 要授权的用户名;
这个操作可以把自己的对象(按照例子来说就是表)授权给其他用户,其他用户可以查询这个表 
GRANT UPDATE ON 对象 TO 授权用户名 WITH GRANT OPTION:

4、Revoking Object Privileges 撤销对象权限

  • 使用REVOKE命令撤销对象权限。
  • 撤销特权的用户必须是被撤销的对象特权的原始授予者。
REVOKE SELECT ON 对象 FROM 用户名;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不会编程的喵星人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值