当前位置:网站首页>Oracle中已定义者身份执行函数AUTHID DEFINER与Postgresql行为的异同
Oracle中已定义者身份执行函数AUTHID DEFINER与Postgresql行为的异同
2022-07-01 22:57:00 【mingjie73】
Oracle行为
Oracle中函数可以定义执行函数体时,使用哪个用户的权限:
[AUTHID { CURRENT_USER|DEFINER}]
CURRENT_USER已当前用户身份执行函数体
DEFINER已定义者的身份执行函数体
CASE1:例如下面函数会使用当前用户执行函数体,如果当前用户对tbl1读权限就可以成功执行。
CREATE OR REPLACE PROCEDURE TEST_P AUTHID CURRENT_USER IS
BEGIN
EXECUTE IMMEDIATE 'select * from tbl1';
END TEST_P;
CASE2:下面函数会使用定义函数的用户执行函数体,如果定义函数的用户对tbl1读权限就可以成功执行。
CREATE OR REPLACE PROCEDURE TEST_P AUTHID DEFINER IS
BEGIN
EXECUTE IMMEDIATE 'select * from tbl1';
END TEST_P;
PG 行为
PG中执行函数永远是使用当前用户的权限来执行的,类似Oracle中AUTHID CURRENT_USER
的概念。
例如user1创建表
drop table u1tbl;
create table u1tbl(i int);
insert into u1tbl values (123);
user2无权限查询
postgres=> select * from u1tbl;
ERROR: permission denied for table u1tbl
user1创建函数
drop function f1();
CREATE OR REPLACE FUNCTION f1() RETURNS int AS $$
DECLARE
id int;
BEGIN
select i into id from u1tbl;
return id;
END;
$$ LANGUAGE plpgsql;
user2执行函数
postgres=> select f1();
ERROR: permission denied for table u1tbl
CONTEXT: SQL statement "select i from u1tbl"
PL/pgSQL function f1() line 5 at SQL statement
可见PG中并没有提供已定义者身份执行的这种方式。
边栏推荐
- 日本购物网站的网络乞丐功能
- 什么是马赛克?
- js——arguments的使用
- [MySQL] database optimization method
- Linux基础 —— CentOS7 离线安装 MySQL
- 实在RPA:银行数字化,业务流程自动化“一小步”,贷款审核效率“一大步”
- SWT/ANR问题--SWT 导致 low memory killer(LMK)
- 2022 safety officer-c certificate examination question simulation examination question bank and simulation examination
- 想请教股票开户要认识谁?在线开户是安全么?
- Advanced skills of testers: a guide to the application of unit test reports
猜你喜欢
Jielizhi, production line assembly link [chapter]
Programming English vocabulary notebook
Notes to problems - file /usr/share/mysql/charsets/readme from install of mysql-server-5.1.73-1 glibc23.x86_ 64 c
The digital summit is popular, and city chain technology has triggered a new round of business transformation
物联网应用技术专业是属于什么类
建模和影视后期有什么关联?
从第三次技术革命看企业应用三大开发趋势
SWT / anr problem - SWT causes kernel fuse deadlock
物联网现状及未来发展趋势
flutter Unable to load asset: assets/images/888.png
随机推荐
数字峰会人气火爆,城链科技引发新一轮商业变革
2022年起重机司机(限桥式起重机)考试试题及模拟考试
Advanced skills of testers: a guide to the application of unit test reports
Redis~02 cache: how to ensure data consistency in MySQL and redis when updating data?
Microservice stability management
Airserver latest win64 bit personal screen projection software
De PIP. Interne. CLI. Main Import main modulenotfounderror: No module named 'PIP'
物联网技术应用属于什么专业分类
物联网开发零基础教程
Programming English vocabulary notebook
Development trend and future direction of neural network Internet of things
每日三题 6.30
Jerry's records are powered by Vbat with a power supply voltage of 4.2V [chapter]
认识--Matplotlib
MySQL -- convert rownum in Oracle to MySQL
What is the mosaic tailgate?
STM32F030F4驱动TIM1637数码管芯片
CADD课程学习(3)-- 靶点药物相互作用
Daily three questions 6.29
Zero foundation tutorial of Internet of things development