一个用户下表、批量授予权限给另一个用户

工作中经常会用到一个用户对另外一个用户下表的操作,遇到批量的授权或回收权限可以用如下语句执行就可以了,一般是授予 select\update\delete\insert 也可以用 grant all 表示所有
对存储过程的授权为 grant execute on 过程 to 用户 如果加 with grant option 当前被授权的用户则可以再授予给其他用户

以下是示例,实际工作中根据情况进行修改即可

--批量授予与收回

--授予 查询 插入 权限
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‘;
    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;
时间: 2024-10-04 06:41:52

一个用户下表、批量授予权限给另一个用户的相关文章

Oracle 11g常用管理命令(用户、表空间、权限)

PS:下面是Oracle 11g最常用的基本管理命令,包括创建用户.表空间,权限分配等.以下命令本人都验证操作过,并加上了本人的小结与说明. 1.启动oracle数据库: 从root切换到oracle用户进入: su - oracle 进入sqlplus环境,nolog参数表示不登录: sqlplus /nolog 以管理员模式登录: sqlplus / as sysdba 启动数据库 startup; 停止数据库 shutdown immediate 远程连接数据库 sqlplus /nolo

如何杀掉一个用户下的所有进程并drop掉这个用户

Copy the sample code below into a file named kill_drop_user.sql.Open SQL*Plus and connect as user SYS to your databaseSQL> CONNECT sys/[email protected] AS SYSDBACreate a user called TEST with password TESTSQL> GRANT connect, resource TO test IDENTI

删除一个目录下的所有文件,但保留一个指定文件

此题问题虽小,但是初学者还是很难给出合理的答案的!本文来自老男孩21期网络班学员 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 面试题:删除一个目录下的所有文件,但保留一个指定文件 解答: 假设这个目录是/xx/,里面有file1,file2,file3..file10  十个文件

linux面试题:删除一个目录下的所有文件,但保留一个指定文件

此题问题虽小,但是初学者还是很难给出合理的答案的!本文来自老男孩21期网络班学员 面试题:删除一个目录下的所有文件,但保留一个指定文件 解答: 假设这个目录是/xx/,里面有file1,file2,file3..file10  十个文件 [[email protected] xx]# touch file{1..10} [[email protected] xx]# ls file1  file10  file2  file3  file4  file5  file6  file7  file8

Oracle 批量修改某个用户下表的表空间

说明:一般来说要修改表的表空间需要同时修改表的表空间和其对应的索引表空间,并且在修改含有BOLB字段的表的表空间时又不一样,具体请参考末尾的链接 思路:拼凑一个满足条件的批处理查询语句,将查询的结果复制出来作为批处理语句执行.具体步骤如下: 1.写查询 --查询某个用户下的表,并生成一个修改其命名空间的批处理语句 select 'alter table '|| table_name ||' move tablespace 要迁入的表空间;' from dba_tables t where t.o

MySQL用户、[表库字段]权限、管理及查询缓存详解

MySQL用户管理: mysql> help contents; You asked for help about help category: "Contents" For more information, type 'help <item>', where <item> is one of the following categories:    Account Management    Administration    Compound Sta

(总结)Oracle 11g常用管理命令(用户、表空间、权限)

1.启动oracle数据库: 从root切换到oracle用户进入:su - oracle 进入sqlplus环境,nolog参数表示不登录:sqlplus /nolog 以管理员模式登录:sqlplus / as sysdba 启动数据库startup;停止数据库shutdown immediate远程连接数据库sqlplus /nologconn sys/[email protected]:1521/orainstance as sysdba也可以直接运行:dbstart#启动数据库的脚本d

Oracle创建用户 创建表空间 分配权限

cmdsqlplus /as sysdba ;1:创建临时表空间create temporary tablespace sjztjpt_temp tempfile 'D:\app\chenxp\oradata\orcl\sjztjpt_temp.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local; 2:创建数据表空间create tablespace sjztjpt_data logging da

ods_yx给用户分配表空间、权限用户等工作内容。

1.登陆运维审计 huang_cb.bl hac12345 2.找到81.35   root-admin  nwsj*2013 3.打开oracle EMC工具,使用ods_yx用户登陆进EMC里面的exdata_sjjcpt  (ods_yx 用户已经具有蛮高的权限了,可以创建用户等内容.) 4.选择用户,点击右键创建用户,编写用户名,用户密码.然后分配权限,比如:select any table 等的权限. 5.创建完后,进行测试,然后关闭.