方案一、最便捷但权限最大
为每个数据库添加metadata账号,赋予读取任何表权限
create user metadata
identified by password
default tablespace USERASPACE
temporary tablespace USERTEMP;
Grant connect,resource to metadata;
Grant create session to metadata;
Grant select any table to metadata;
Grant execute any procedure to metadata;
自然就能获取相关授权用户表的信息了,不过麻烦的是,除了看到相关赋权的用户,也可以读取所有用户表的数据了。
select * from all_objects;
select * from all_tables;
select * from all_cons_columns;
select * from all_tab_comments;
select * from all_col_comments;
select * from all_tab_columns;
select * from all_source;
select * from all_constraints;
select * from user_objects;
select * from user_source;
方案二、方便且容易控制权限
create user metadata
identified by password
default tablespace USERASPACE
temporary tablespace USERTEMP;
方案三、建立大量的系统表中间表、还要赋权给metadata用户,还要写存储过程和定时任务,当然权限控制没问题,不过操作上比较麻烦,在此不做详述
综上,选择方案二
本文分享自 python与大数据分析 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!