oracle显式授权和隐式授权

oracle对象的授权

Oracle授权

一、授权语法

GRANT语法:

1.显式授权(直接将对象授权给用户)

GRANT privilege [, ...] ON object [, ...]  TO  { Public| Group | Username|role} [WITH GRANT OPTION ]

例子grant read,write on directory dir_home to public

2.隐式授权(通过将角色授权给用户)

GRANT role TO  { Public| Group | Username|role}

例子grant connect,resource to oltp_user

语法说明:

privilege (权限)

可能的权限有:

SELECT--访问声明的表/视图的所有列/字段.

INSERT—对声明的表插入所有列/字段.

UPDATE—对声明的表更新所有列/字段.

DELETE--对声明的表删除所有列/字段.

RULE --表/视图上定义规则 (参见CREATE RULE语句).

ALL  --赋予所有权限.

object赋予权限的对象名.

可能的对象是:

table(表)

view(视图)

sequence(序列)

index(索引)

directory(目录)

Public 代表是所有用户的简写.

Group  将要赋予权限的组GROUP.目前的版本中,组必须是用下面方法显式创建的.

Username将要赋予权限的用户名.PUBLIC是代表所有用户的简写.

role  某个角色,(如DBA connect resource)

WITH GRANT OPTION允许向别人赋予同样权限,被授权的用户可以继续授权.

描述

对象创建后,除了创建者外,除非创建者赋予(GRANT)权限,其他人没有访问对象的权限。

本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/database/Oracle/

GRANT允许对象的创建者给某用户或某组或所有用户(PUBLIC)某些特定的权限。不需要给创建者赋予(GRANT)对象的权限,创建者默认拥有对象的所有权限,包括删除它的权限。

说明

Oracle不允许在存储过程中使用未经显式授权的对象.要使用另一用户的对象,必须通过另一用户给自己显示授权。

因为Oracle在编译存储过程时并不检查定义者拥有的角色,只是检查其被显式授予的权限,而DBA也是一种角色,所以即使是DBA,也需要显式授权。

二、授权方式(显式和隐式)

对象授权有两种模式,显式和隐式:

显示授权和隐式授权的区别是:显式授权是直接把对象授权给用户,隐式授权是给用户授予角色的方式来实现授权。

1.显式授权是直接用GRANT语句进行授权。

语法:GRANT某种权限TO用户

如:

CONN  USER1/Password

GRANT SELECT  ON TABLE1 TO USER2; 将user1的表TABLE1的select权限显示授权给user2

GRANT UPDATE  ON TABLE1 TO USER2; 将user1的表TABLE1的update权限显示授权给user2

注:用system/manager登录是没法授权的,要使USER2用户能在存储过程里面访问USER1用户的表,必须以USER1用户(该用户有dba权限)登录,然后授权就可以了。

SQL>grant select on USER1.MA_USERINFO to USER2

2.隐式授权则是通过ROLE来授权。

语法:GRANT某个角色TO用户

如:

CONN  USER1

GRANT SELECT ON TABLE1 TO ROLE1;  将USER1的表TABLE1的select权限显示授权给Role1

CONN  SYSTEM                     切换成管理员授予角色

GRANT ROLE1 TO USER2;              给USER2授与Role1的权限。

三、收回权限

语法:

显式收权:   revoke权限from用户;  从用户中收回权限

隐式收权:    Revoke角色 from用户; 从用户中收回角色

例子:

revoke  privilege1 from USER2;     从用户中收回权限

revoke select on table1 from User1; 收回查询select表的权限

revokeall on table1 from User1;     从用户user1中收回表table1的所有权限

revoke  ROLE1    from USER2;    从用户中收回角色

grant  connect to xujin;        对用户xujin授予connect角色

revoke connect  from xujin     从用户xujin收回connect角色

End

Author:51cto博客 Oracle小混子

时间: 2024-09-19 08:16:26

oracle显式授权和隐式授权的相关文章

Android显式启动与隐式启动Activity的区别介绍_Android

前段时间立志坚持写博客,但是发现自己的积累的确不多,于是假期泡了泡图书馆,读了一些很有价值的文章.收获颇多,今天的文章分享为主,共同学习. 为什么要写显式启动与隐式启动Activity.这源于自己的一次面试,被Baidu工程师问道,但是后来觉得自己回答的不好,废话少说,进入正题. 如题,Android的Acitivity启动大致有两种方式:显式启动与隐式启动.下面分别介绍: A:显式启动 对于初学者来说,这个最常见,下面用代码来解释什么是显式启动. 复制代码 代码如下: Intent inten

html表单中显式label与隐式label及屏幕阅读器的影响

label元素平淡无奇,就是为表单输入元素贴上标签,方便辨识.label有个很重要的属性是for,可以将label与其标识的输入元素绑定在一起,提供更好的操作体验. 显式label <label for="foo"></label><input type="text" id="foo"> 重置和提交按钮,图片按钮以及button元素按钮不用使用显式label,因为它们已经有了隐式标签,如value 和 alt

Scala入门到精通——第十九节 隐式转换与隐式参数(二)

作者:摇摆少年梦 配套视频地址:http://www.xuetuwuyou.com/course/12 本节主要内容 隐式参数中的隐式转换 函数中隐式参数使用概要 隐式转换问题梳理 1. 隐式参数中的隐式转换 前一讲中,我们提到函数中如果存在隐式参数,在使用该函数的时候如果不给定对应的参数,则编译器会自动帮我们搜索相应的隐式值,并将该隐式值作为函数的参数,这里面其实没有涉及到隐式转换,本节将演示如何利用隐式参数进行隐式转换,下面的代码给定的是一个普通的比较函数: object ImplicitP

Scala入门到精通——第十八节 隐式转换与隐式参数(一)

本节主要内容 隐式转换简介 隐式转换函数 隐式转换规则 隐式参数 1. 隐式转换简介 在scala语言当中,隐式转换是一项强大的程序语言功能,它不仅能够简化程序设计,也能够使程序具有很强的灵活性.要想更进一步地掌握scala语言,了解其隐式转换的作用与原理是很有必要的,否则很难得以应手地处理日常开发中的问题. 在scala语言中,隐式转换是无处不在的,只不过scala语言为我们隐藏了相应的细节,例如scala中的类继承层次结构中: 它们存在固有的隐式转换,不需要人工进行干预,例如Float在必要

J2EE探索者:隐式对象的多种用法

j2ee|对象 接着上月对会话作用域的介绍,企业 Java 专家 Kyle Gabhart 深入研究了 JSP 隐式对象的多种用法.接下来,他将介绍 9 个隐式对象,解释每个对象的用途(或者多种用途),最后给出一些怎样在 JSP 编程中使用这些便利工具的最佳实践.您可以到我们的 讨论论坛 中分享您对这篇文章或者 J2EE 探索者 系列中的任何其他文章的想法. 本期的 J2EE探索者 是上个月的 正确处理会话作用域入门 的续篇.除了访问会话作用域之外,JSP 隐式对象还可以用来处理 HTML 参数

J2EE探索者: 隐式对象的多种用法

本期的 J2EE探索者是上个月的 正确处理会话作用域入门 的续篇.除了访问会话作用域之外,JSP 隐式对象还可以用来处理 HTML 参数,转发请求到一个 Web 组件,包括组件的内容.通过 JSP 容器的日志数据.控制输出流,处理异常,等等. 本月,您将学到在 JSP 页面中使用隐式对象.我们首先简要概括 JSP 架构,其中包括了隐式对象.然后,我将介绍每个对象并描述它的核心功能.最后,我们将给出使用每种类型的对象和它提供的容器管理服务的一些最佳实践. 隐式对象简介 JSP 架构背后的理念是提供

【PL/SQL 学习】隐式游标学习

--oracle 会为每一个非显示游标的sql dml 语句都创建一个隐式游标,隐式游标也称为sql 游标.与显示游标不同,不能对一个隐式游标执行open,close和fetch语句.oracle 隐式的打开sql游标,处理sql游标,然后再关闭该游标. declare   vid t.object_id%type;   vowner t.owner%type;  begin    select object_id ,owner into vid,vowner from t where rown

隐式意图匹配规则

Android基本的设计理念是鼓励减少组件间的耦合,因此Android提供了Intent,Intent提供了一种通用的消息系统,它允许在你的应用程序与其它的应用程序间传递Intent来执行动作和产生事件.使用Intent可以激活Android应用的三个核心组件:活动.服务和广播接收器.即Android的四大组件中活动.服务和广播接收器.内容提供者中只有内容提供者不是被Intent激活的. Intent可以划分成显式意图和隐式意图. 显示意图适合用于应用的内部,速度较快. 隐式意图有对应的查找规则

第3课 隐式转换

1)val array=Array(1,2,3,4,5); array.map(item => 2*item);map的作用是循环遍历array中的每一个元素,并把每个元素做为具体的值传给map中的做为参数的函数.map执行结果为Array[Int] =Array(2,4,6,8,10);函数的参数也是函数,item时匿名函数,这个也是高阶函数 2)高阶函数的返回值也可能是函数.高阶函数的参数是函数,这是高阶函数的2个层面.高阶函数可以自动推断出函数参数的类型.而且对只有一个参数的函数,可以省略