在plsql中控制呼叫者許可權
-- 1,環境建立
SQL> create user sneaky_developer identified by 123;
使用者已建立。
SQL> grant create session,create procedure to sneaky_developer;
授權成功。
SQL> create user normal_user identified by 123;
使用者已建立。
SQL> grant create session to normal_user;
授權成功。
SQL> create user dba_user identified by 123;
使用者已建立。
SQL> grant create session,dba to dba_user;
授權成功。
SQL> conn sneaky_developer/ [email protected]
已連線。
SQL> create or replace function add_number(p1 in number,p2 in number)
2 return number authid current_user
3 as
4 begin
5 return (p1+p2);
6 end;
7 /
函式已建立。
SQL> grant execute on add_number to public;
授權成功。
-- 2,第一次測試
SQL> conn normal_user/[email protected] ;
已連線。
SQL> select sneaky_developer.add_number(1.1,2.2) from dual;
SNEAKY_DEVELOPER.ADD_NUMBER(1.1,2.2)
------------------------------------
3.3
SQL> conn dba_user/[email protected]
已連線。
SQL> select sneaky_developer.add_number(1.1,2.2) from dual;
SNEAKY_DEVELOPER.ADD_NUMBER(1.1,2.2)
------------------------------------
3.3
SQL> SELECT grantee
2 FROM dba_role_privs
3 WHERE granted_role = 'DBA'
4 ORDER BY grantee;
GRANTEE
--------------------------------------------------------------------------------
DBA_USER
SYS
SYSTEM
-- 修改函式
SQL> conn sneaky_developer/ [email protected];
已連線。
SQL> create or replace procedure make_me_a_dba authid current_user as
2 pragma autonomous_transaction;
3 begin
4 execute immediate 'grant dba to sneaky_developer';
5 exception
6 when others then
7 null;
8 end;
9 /
過程已建立。
SQL> create or replace function add_number(p1 in number,p2 in number)
2 return number authid current_user
3 as
4 begin
5 make_me_a_dba;
6 return (p1+p2);
7 end;
8 /
函式已建立。
-- 再次測試
SQL> conn normal_user/[email protected]
已連線。
SQL> select sneaky_developer.add_number(1.1,2.2) from dual;
SNEAKY_DEVELOPER.ADD_NUMBER(1.1,2.2)
------------------------------------
3.3
SQL> conn dba_user/[email protected]
已連線。
SQL> select sneaky_developer.add_number(1.1,2.2) from dual;
SNEAKY_DEVELOPER.ADD_NUMBER(1.1,2.2)
------------------------------------
3.3
SQL> select grantee from dba_role_privs where granted_role='DBA';
GRANTEE
--------------------------------------------------------------------------------
DBA_USER
SNEAKY_DEVELOPER
SYSTEM
SYS
SQL> revoke dba from sneaky_developer;
撤銷成功。
SQL> select grantee from dba_role_privs where granted_role='DBA';
GRANTEE
--------------------------------------------------------------------------------
DBA_USER
SYSTEM
SYS
-- 撤銷許可權,第三次測試
SQL> conn [email protected] as sysdba
輸入口令:
已連線。
SQL> revoke inherit privileges on user dba_user from public;
撤銷成功。
SQL> conn dba_user/[email protected]
已連線。
SQL> select grantee from dba_role_privs where granted_role='DBA';
GRANTEE
--------------------------------------------------------------------------------
DBA_USER
SYSTEM
SYS
SQL> select sneaky_developer.add_number(1.1,2.2) from dual;
select sneaky_developer.add_number(1.1,2.2) from dual
*
第 1 行出現錯誤:
ORA-06598: INHERIT PRIVILEGES 許可權不足
ORA-06512: 在 "SNEAKY_DEVELOPER.ADD_NUMBER", line 1
SQL> select grantee from dba_role_privs where granted_role='DBA';
GRANTEE
--------------------------------------------------------------------------------
DBA_USER
SYSTEM
SYS
-- 文章參考來源:https://oracle-base.com
相關推薦
在plsql中控制呼叫者許可權
-- 1,環境建立 SQL> create user sneaky_developer identified by 123; 使用者已建立。 SQL> grant create session,create procedure to sneaky_devel
在函式中打印出呼叫者的函式名稱
Linux -c 中列印呼叫函式的名稱 #include <stdio.h> #include <string.h> void func(unsigned char *func_buf) { printf("%s \n",func_buf); }
zookeeper java呼叫及許可權控制
import java.io.IOException; import java.security.NoSuchAlgorithmException; import java.util.ArrayList; import java.util.List; imp
C#中實現 子窗體控制呼叫父窗體成員和控制元件
因專案需要,我要在一個子窗體form6中呼叫建立它的父窗體form4的一個combobox的方法和屬性。 網上搜集的,沒有統一答案,試驗了下。 可行方法如下: 在form6的class類定義中加入一個私有成員變數,用來記錄父窗體; private form M; 在f
oracle 在plsql中建立procedure並呼叫
Create table create table A ( USERID NUMBER(38), PWD VARCHAR2(30) ) tablespace USERS pctfree 10 initrans 1 max
odoo8 FormView的one2many中many記錄刪除許可權精細控制
在目前的Odoo8.0版本中,如果FormView有one2many的欄位,many記錄在編輯時,都會在後面顯示一個刪除的小圖示,這個圖示的顯示與否是由統一的許可權管控的,要麼所有明細記錄都顯示,要麼所有明細記錄都不顯示。 在實際的業務需求中,可能需要針對明細記錄作精細控制
spring中service呼叫service的事務控制
在使用SPRING的事務控制時,事務一般都是加在SERVICE層的,這個時候如果一個SERVICE呼叫另一個 SERVICE時有可能會出現事務控制問題,比如第二個SERVICE丟擲了異常,第一個SERVICE卻正常提交了, 比如下面這個例子: 事務配置 <t
C# winform中一個類中如何呼叫另一個窗體的控制元件或方法
轉載地址:http://blog.csdn.net/ichenqingyun/article/details/52622340 一種是建立窗體物件的方式,通過物件呼叫控制元件或方法 例如: Form1 form1 = new Form1(); form1.Button;
android應用如何在有需要時申請root許可權?在程式中要呼叫哪些語句來實現?
測試的手機已經root,並且裝有授權管理,允許應用來申請root許可權。但是要怎麼在程式裡寫程式碼來觸發申請?我試過用:Runtime runtime = Runtime.getRuntime();Process proc = runtime.exec("su");是會彈出一個對話方塊問你是否允許申請root
asp.net core mvc許可權控制:在檢視中控制操作許可權
public override void Process(TagHelperContext context, TagHelperOutput output) { if (string.IsNullOrEmpty(Claim)) {
『ORACLE』 PLSQL條件控制語句(11g)
lin proc lar plsql 判斷語句 條件 num success end 簡單條件判斷語句 SQL> declare 2 myage number := 10; 3 begin 4 if myage < 11 then 5 dbms
PLSQL中的三種參數模式IN、OUT、IN OUT
代碼 問題 ima .cn lang 傳遞 repl 一個 lin 1、IN模式 IN模式是參數的默認模式,這種模式就是在程序運行的時候已經具有值,在程序體中值不會改變。 錯誤例子: 1 create or replace procedure in_proc ( 2
【PLSQL】PLSQL中復合數據類型
next 存儲 int 微軟 sel acl 遊標 復合 lec 1,常見的操作數據庫的技術有那些 jdbc 使用java 訪問數據庫的技術 PLSQL (procedure 過程化sql) 在數據庫內部操作數據的技術 proc/c++
框架頁面盡可以這麽用(後置代碼中控制框架)
out get .cn top align lock 顯示 摘要 oct 下面是框架頁: <%@ Page CodeBehind="Frameset.aspx.cs" Language="c#" AutoEventWireup="false" Inherits="Ib
windows中控制臺窗口和普通窗口有什麽區別?
都是 adc 同時 寫到 一個 數據 tdi 消息隊列 循環 1. 窗口都是windows標準窗口,有窗口句柄,但是console window沒有消息循環,直接從緩沖區讀數據,顯示數據。 windows中普通窗口都有自己的窗口過程, 我可以使用SetWin
JMeter性能測試中控制業務比例
表達 整除 控制 strong 條件 style 兩個 logs 使用 性能測試混合場景中,我們需要組合多個業務操作到場景中來。比如有一個論壇的業務分布如下:發布新帖與回復帖子的比例為2:3,那麽我們在JMeter測試計劃中如何控制其比例呢? 可以通過以下兩種方式解
plsql中net_day 中求下個星期幾 用漢字不能用的辦法
plsql中net_day 中求下個星期幾 用漢字不能用的辦法首先解決plsql中顯示漢字的問題 如果 select sysdate from daul; //顯示的 2017/9/24/星 是這個就能正常用如果不是1、http://10788133.blog.51cto.com/10778133/1968
PLSQL中使用二維存儲結構---二維數組
維數 limited syn data 多維數組 loop tput xtran 數組元素 代碼如下: --PLSQL中沒有數組的概念 用TYPE 和Table of Record來代替多維數組--create by jenrry 20171028-- 1.0 建立存放列
PLSQL中顯示Cursor、隱示Cursor、動態Ref Cursor差別
不同 number acl res 效率 track 一點 變量 語法 一、顯式cursor 顯式是相對與隱式cursor而言的,就是有一個明白的聲明的curso
3星|《高情商談判》:談判中控制情緒非常重要
的人 三種 我們 get 救護車 歸屬感 utf8 表達 溫度 高情商談判 全書強調談判中控制情緒非常重要,並給出一些控制情緒的技巧,給出一些作者編的故事和不多的幾個實例。 用故事說理有點低於我的預期,我以為作者會用數據說理,畢竟作者是哈佛大學的專家。 個人感覺作