数据库中批量授权与回收权限



--授予 查询 插入 权限 
DECLARE CURSOR CUR_A 
IS 
SELECT TABLE_NAME  FROM USER_TABLES;
V_VAR  VARCHAR2( 1000);
BEGIN
  OPEN CUR_A;
  LOOP 
    FETCH CUR_A  INTO V_VAR;
    EXIT  WHEN CUR_A%NOTFOUND;
    EXECUTE  IMMEDIATE  'GRANT  SELECT,INSERT ON ' ||V_VAR||  ' TO  WXZJ1';   -- SELECT ,INSERT,DELETE ,UPDATE,
     END LOOP;
  CLOSE CUR_A;
END;




--收回所有权限
DECLARE CURSOR CUR_A 
IS 
SELECT TABLE_NAME  FROM USER_TABLES;
V_VAR  VARCHAR2( 1000);
BEGIN
  OPEN CUR_A;
  LOOP 
    FETCH CUR_A  INTO V_VAR;
    EXIT  WHEN CUR_A%NOTFOUND;
    EXECUTE  IMMEDIATE  'REVOKE  ALL  ON ' ||V_VAR||  ' FROM  WXZJ1 ';
     END LOOP;
  CLOSE CUR_A;
END;


--单个授予
GRANT  SELECT  ON 表名  TO 用户名

--收回
REVOKE  SELECT  ON 表名  FROM 用户名



--另外一种写法------------------------------------------------------------------------------------------
DECLARE CURSOR CUR_A 
IS  SELECT TABLE_NAME  FROM USER_TABLES;
V_SQL  VARCHAR2( 2000);
BEGIN
FOR TABLENAME  IN CUR_A LOOP 
     V_SQL:= 'GRANT SELECT,INSERT ON ' ||TABLENAME.TABLE_NAME||  ' TO DBO_PROPERTYMANAGEMENTCENTERIM'
     EXECUTE  IMMEDIATE V_SQL; 
     END LOOP;
END;



DECLARE CURSOR CUR_A 
IS  SELECT TABLE_NAME  FROM USER_TABLES;
V_SQL  VARCHAR2( 2000);
BEGIN
FOR TABLENAME  IN CUR_A LOOP 
     V_SQL:= 'REVOKE SELECT,INSERT ON ' ||TABLENAME.TABLE_NAME||  ' FROM DBO_PROPERTYMANAGEMENTCENTERIM'
     EXECUTE  IMMEDIATE V_SQL; 
     END LOOP;
END;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值