-- oracle中truncate其他用户的表必须要有drop any table权限,如果没有此权限,可以采用下面的方法
-- 1创建存储过程
create or replace procedure truncate_tbl
(table_name in varchar2)
authid definer
as
cursor_id integer;
begin
cursor_id := dbms_sqlopen_cursor;
dbms_sqlparse(cursor_id, 'TRUNCATE TABLE ' || table_name, dbms_sqlv7);
dbms_sqlclose_cursor(cursor_id);
exception
when others then
dbms_sqlclose_cursor(cursor_id);
raise;
end truncate_tbl;
-- 2授予存储过程的执行权限
grant execute on truncate_tbl to XXX;
grant select any table to hsh;
根据指定用户名获得对应用户所拥有权限的表。
SELECT table_name, owner FROM all_tables WHERE owner = 'SCOTT';
将一个用户将表数据赋给另一个用户。
在用户hsh登录下 create table emp as select from scottemp;
name是用户名(所属主、所属用户),group是所属组
记得切换到超级管理员下再执行此命令
利用chown 将指定文件的拥有者改为指定的用户(或用户id)或组(或组id);文件是以空格分开的要改变权限的文件列表,支持通配符
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)