`
vateran
  • 浏览: 23639 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

使用存储过程查询没有权限的表

    博客分类:
  • db
 
阅读更多

 使用存储过程查询没有权限的表


用户B中有表:T_USER,用户A没有对T_USER的查询权限。如果我们还想在A中想要查询T_USER,可以通过存储过程来完成

在B创建存储过程如下:

CREATE OR REPLACE PROCEDURE PROC_SELECT_USER(v_user_id in VARCHAR2, v_user_name out VARCHAR2) AS
begin
    SELECT user_name into v_user_name FROM T_USER WHERE USER_ID = v_user_id;
END;

 
给A用户赋权:

 

grant execute on B.PROC_SELECT_USER to A;

 

 

在A中测试:

 

declare
 v_user_id varchar2(40);
 v_user_name varchar2(40);
begin
  -- Call the procedure  
  v_user_id := '00000001';
  PROC_SELECT_USER(v_user_id, v_user_name);
  dbms_output.put_line(v_user_name);
end;

 

通过上述方法可以曲线地完成对无权限的表的更新,修改等操作。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics