--创建用户CREATE USER MMS_T5_ANALYSIS IDENTIFIED BY 123456;--修改用户密码alter user MMS_T5_ANALYSIS identified by MMS_T5_ANALYSIS--解锁用户ALTER USER MMS_T5_ANALYSIS account unlock;--赋予角色权限GRANT CONNECT TO MMS_T5_ANALYSIS;GRANT RESOURCE TO MMS_T5_ANALYSIS;--查看当前用户所拥有的表SELECT * FROM USER_TABLES;--查询指定用户拥有的所有表(会自动判断身份可以查询到的表,建议使用管理员查看)select * from all_tables where owner='user'--授权存储过程的执行权限grant execute on grant_all_table_sel_privs to user;--调用其他用户授权的存储过程需添加用户名前缀,如exec USER.grant_all_table_sel_privs('SWITCH_ANALYSIS');
批量将当前用户所拥有的表的查询权限授权给指定用户
一开始准备在存储过程里面里面直接执行授权语句,但是就算是当前用户有时也会存在授权失败的情况,所以改成打印出所有的授权语句然后手动执行
- 以管理员身份创建存储过程,该存储过程会打印出所有的授权语句,因为只有管理员才有所有用户的表查询权限 ```plsql
create or replace procedure grant_all_table_sel_privs(v_from in varchar2, v_to in varchar2) is
v_sql varchar2(1000); cursor v_cur is select * from all_tables where owner = v_from;
begin for v_row in v_cur loop v_sql := ‘grant select on ‘ || v_from || ‘.’ || v_row.table_name || ‘ to ‘ || v_to || ‘;’; dbms_output.put_line(v_sql); end loop; end grant_all_table_sel_privs;
2. 调用存储过程```plsql--plsql段调用begingrant_all_table_sel_privs('MMS_T5_ANALYSIS','SWITCH_ANALYSIS');end;--sql命令调用--1.打开控制台输出set serveroutput on;--2.调用存储过程exec grant_all_table_sel_privs('MMS_T5_ANALYSIS','SWITCH_ANALYSIS');
- 复制控制台的授权语句进行手动执行即可
c盘格式化,恢复oracle数据
点击前往
恢复后数据库没有数据,检查是否使用管理员账户登录,只有管理员账户具有查看其它用户数据的权限
