角色許可權儲存過程

2021-04-21 18:15:12 字數 970 閱讀 7664

create or replace function "super"."sp_gettable"(tablename in varchar,userid in number)

return userstype.ref_cursor

assqlstr varchar2 (500);

str varchar2(200);

strresult varchar2(500);

users_cursor userstype.ref_cursor;

tablenames_cursor userstype.ref_cursor;

r rolespermissionitems.items%type;

begin

--得到角色能夠檢視的專案

sqlstr :='select items from rolespermissionitems where tablename=:1 and roleid=:2';

open users_cursor for sqlstr using tablename,userid;

loop

fetch users_cursor into r;

exit when users_cursor%notfound;

str:=str||','||r;

end loop;

close users_cursor;

str:=trim(',' from str);

--結束角色能夠檢視的專案

dbms_output.put_line(str);

strresult:='select *  from '||tablename;

--dbms_output.put_line(strresult);

open tablenames_cursor for strresult;

return tablenames_cursor;

end  sp_gettable;

角色許可權資訊儲存操作過慢

最近處理乙個很久的以前的老專案的優化,其實本身的問題很簡單,就是原有的設計太無語了,儲存一次要10 20分鐘。優化對比測試時坑死人了。問題 將插入資料庫的操作寫在迴圈裡,每執行一次插入就要連線一次資料庫,io耗時非常巨大 刪除原有角色許可權關聯表和許可權表的資訊時,居然分為4步,4步也沒問題,關鍵他...

Oracle儲存過程執行許可權

預設情況下,在呼叫儲存過程使用者的角色是不起作用的,即在執行儲存過程時只有public許可權。所以如果被呼叫的儲存過程中如果有execute immediate create table.語句,將會引發ora 01031 insufficient privileges錯誤。儲存過程分為兩種,即dr ...

Oracle儲存過程許可權問題

儲存過程分成兩種許可權 1.定義者許可權 authid definer 2.呼叫者許可權 authid current user 預設的情況下使用的是定義者許可權。1。定義者許可權使用遇到的問題 當使用定義者許可權時候,不管是你自己去call,還是其他使用者去call,效果是一樣的,都是用你的許可權...