oracle authid current_user详解
在编写PLSQL程序时,对于授权的考虑很重要。ORACLE PLSQL中提供两种授权选择:
--AUTHID DEFINER (定义者权限):指编译存储对象的所有者。也是默认权限模式。
--AUTHID CURRENT_USER(调用者权限):指拥有当前会话权限的模式,这可能和当前登录用户相同或不同(alter session set current_schema 可以改变调用者Schema)
来看下官方的解释:
By default, stored procedures and SQL methods execute with the privileges of their owner, not their current user. Suchdefiner's rights subprograms are bound to the schema in which they reside, allowing you to refer to objects in the same schema without qualifying their names. For example, if schemas HR
and OE
both have a table called departments
, a procedure owned by HR
can refer to departments
rather than HR.departments
. If user OE
calls HR
's procedure, the procedure still accesses the departments
table owned by HR
.
A more maintainable way is to use the AUTHID
clause, which makes stored procedures and SQL methods execute with the privileges and schema context of the calling user. You can create one instance of the procedure, and many users can call it to access their own data.
默认情况,程序以其拥有者身份(定义者)执行。定义者权限的程序与其所在模式绑定,调用对象不需要加上模式完整名称。例如,假如模式HR和OE都有deparments表,HR拥有的程序可直接调用departments而不用HR.departments
.而如果OE调用HR的程序,程序仍然调用的是HR的departments.
如果希望不同模式(schema)调用相同的程序却可以操作各自拥有的对象,就可以在定义程序的时候加上AUTHID CURRENT_USER。
下面举例说明2中授权机制:
---------------------------------------------------------------
C:\Users\Administrator>sqlplus sys/oracle@orcl as sysdba
查看一下sys模式下user_tables表记录数:
sys@ORCL> select count(*) from user_tables;
COUNT(*)
----------
972
创建2个对比函数:
get_count is default auth mode. When another user calls this function it will use SYS's user_tables
sys@ORCL> CREATE OR REPLACE FUNCTION get_count RETURN NUMBER AUTHID DEFINER IS
2 table_count NUMBER;
3 BEGIN
4 SELECT COUNT(*) INTO table_count FROM user_tables;
5
6 RETURN table_count;
7 END;
8 /
函数已创建。
get_count2 is CURRENT_USER auth mode. When another user calls this function it will use its user_tables
sys@ORCL> CREATE OR REPLACE FUNCTION get_count2 RETURN NUMBER AUTHID CURRE
NT_USER IS
2 table_count NUMBER;
3 BEGIN
4 SELECT COUNT(*) INTO table_count FROM user_tables;
5
6 RETURN table_count;
7 END;
8 /
函数已创建。
下面进行授权操作:
sys@ORCL> grant execute on get_count to hr;
授权成功。
sys@ORCL> grant execute on get_count2 to hr;
授权成功。
sys@ORCL> conn hr/hr;
已连接。
hr@ORCL> SELECT sys.get_count FROM dual;
GET_COUNT
----------
972
hr@ORCL> SELECT sys.get_count2 FROM dual;
GET_COUNT2
----------
7
结果一目了然。
定义者权限模式确保我们能控制对集中式DML操作。
而调用者权限模式则确保我们能控制对分布式数据的DML操作。
详细信息请参考资料:点击打开链接http://download.csdn.net/detail/indexman/6642375
-----------------------------------
Dylan presents.
oracle authid current_user详解的更多相关文章
- Oracle执行计划详解
Oracle执行计划详解 --- 作者:TTT BLOG 本文地址:http://blog.chinaunix.net/u3/107265/showart_2192657.html --- 简介: ...
- oracle表分区详解
原文来自:http://www.cnblogs.com/leiOOlei/archive/2012/06/08/2541306.html oracle表分区详解 从以下几个方面来整理关于分区表的概念及 ...
- Oracle权限管理详解
Oracle权限管理详解 转载--CzmMiao的博客生活 Oracle 权限 权限允许用户访问属于其它用户的对象或执行程序,ORACLE系统提供三种权限:Object 对象级.System 系统级. ...
- Java从入门到精通——数据库篇Oracle 11g服务详解
装上Oracle之后大家都会感觉到我们的电脑慢了下来,如何提高计算机的速度呢?我们应该打开必要的服务,关闭没有用的服务.下面是Oracle服务的详解: Oracle ORCL VSS Writer S ...
- oracle rac IP详解
rac环境下vip/public/private IP的区别 每个节点要2块网卡, 3个IP,虚拟IP或者叫做业务IP,单个网卡当掉可以“漂”到其他网卡是继续提供服务 在Oracle RAC环境下,每 ...
- oracle tkprof 工具详解
oracle tkprof 工具详解 今天是2013-09-26,进行tkprof工具使用学习,在此记录一下笔记: 一)查看需要跟踪会话信息: select s.sid,s.serial#,s.us ...
- Oracle AWR 报告详解
转自:http://blog.csdn.net/laoshangxyc/article/details/8615187 持续更新中... Oracle awr报告详解 DB Name DB Id In ...
- Oracle 11g服务详解
装上Oracle之后大家都会感觉到我们的电脑慢了下来,如何提高计算机的速度呢?我们应该打开必要的服务,关闭没有用的服务.下面是Oracle服务的详解: Oracle ORCL VSS Writer S ...
- Oracle表空间详解
Oracle表空间详解 1.表空间的分类 Oracle数据库把表空间分为两类:系统表空间和非系统表空间. 1.1系统表空间指的是数据库系统创建时需要的表空间,这些表空间在数据库创建时自动创建,是每个数 ...
- [转]Oracle执行计划详解
Oracle执行计划详解 --- 作者:TTT BLOG 本文地址:http://blog.chinaunix.net/u3/107265/showart_2192657.html --- 简介: ...
随机推荐
- (保姆级)服务器-Zabbix6.0使用Python脚本实现带图片的邮箱的报警
前言 近期在琢磨Zabbix邮箱报警的功能,但是网上的教程通常是4.0或5.0版本Zabbix,并使用Python2.7环境,运行在新版本Zabbix6.0上有颇多问题,为此我基于原先教程修改基于Za ...
- [转帖]MySQL8.1来了:MySQL创新和长期支持(LTS)版本简介
https://cloud.tencent.com/developer/article/2303772 在Oracle,我们不断寻找改进产品的方法,以更好地满足您的需求.我们很高兴推出MySQL创新和 ...
- [转帖]《Linux性能优化实战》笔记(六)—— Linux 软中断与对应故障分析方法
中断是系统用来响应硬件设备请求的一种机制,它会打断进程的正常调度和执行,然后调用内核中的中断处理程序来响应设备的请求. 一. 为什么要有中断 举个生活中的例子,让你感受一下中断的魅力.比如说你订了一份 ...
- [转帖]TiDB 环境与系统配置检查
https://docs-archive.pingcap.com/zh/tidb/v6.0/check-before-deployment 本文介绍部署 TiDB 前的环境检查操作,以下各项操作按优先 ...
- [转帖]minio 的 warp
3 benchmarking tool. Download Download Binary Releases for various platforms. Configuration Warp can ...
- [转帖]编译安装goofys挂载Scaleway免费75G对象存储
日常•2022年5月29日 goofys编译 goofys是一个开源的使用Go编写的s3存储桶挂载工具,主打高性能.由于使用Go编写,没有用到什么特别的依赖,自己编译也很容易.截止2022.5.2 ...
- 【转帖】网卡bonding模式 - bond0、1、4配置
网卡bonding简介 网卡绑定就是把多张物理网卡通过软件虚拟成一个虚拟的网卡,配置完毕后,所有的物理网卡的ip和mac将会变成相同的.多网卡同时工作可以提高网络速度,还可以实现网卡的负载均衡.冗余. ...
- 关于SSL证书的学习与总结
关于证书 证书是用来实现https通信加密的基础, 有证书才能够进行相关的TLS层的加密处理. 本文简要讲解一下证书的申请,创建以及使用等. 第一部分: PKI 公共密钥基础 其实有很多家企业在做PK ...
- Paddlenlp之UIE分类模型【以情感倾向分析新闻分类为例】含智能标注方案)
相关文章: Paddlenlp之UIE模型实战实体抽取任务[打车数据.快递单] 项目连接:百度AIstudio直接fork我的项目就可以复现 Paddlenlp之UIE分类模型[以情感倾向分析新闻分类 ...
- 【四】gym搭建自己的环境,全网最详细版本,3分钟你就学会了!
相关文章: [一]gym环境安装以及安装遇到的错误解决 [二]gym初次入门一学就会-简明教程 [三]gym简单画图 [四]gym搭建自己的环境,全网最详细版本,3分钟你就学会了! [五]gym搭建自 ...