相当于怎么把A用户的查询user_tables表的权限给B用户?在B用户中查询A用户的user_tables表。
grant all on A.user_tables to B 会报错,表或试图不存在。
没有dba用户权限,进不去,只能用第二种方法,两条语句都成功了,但是查询结果不对,还是当前用户下的表信息,我写不知道对不对,你看下。
A用户下:create view A_user_tables as select * from user_tables;
grant select on A.A_user_tables to B
B用户下:select * from A.A_user_tables
没错,你可以试试看, 附上我测试过的图片
我也是这样试的,但结果却是错了
建议把具体查询结果贴出来,这样是看出问题了,但是不知道具体是哪一块出现问题了
追问已经解决了,select * from all_all_tables t where t.owner='A'用all_all_tables代替user_tables,不用分权限的。虽然没能帮到多少,但还是谢谢了。你的方法还是给了我很多启发,让我考虑的多了,谢谢!
追答哦,怎么会不用分权限呢 除非B用户被分配了查看用户A的表信息的权限,呵呵
已经解决了,用all_all_user_tables就可以区分了,不用分权限的。虽然没能帮到多少,但还是谢谢了。
已经早试过了,这样可以我就不用问了,也会报错的,表或试图不存在…………
追答grant select on user_tables to b; 在a的用户下面这样写
追问这样写倒是不报错,但是在B用户下面查询就会报错。也早都试过了。
select * from A.user_tables 会报错,表或试图不存在。
select * from user_tables 这样查出的B用户下的表字典。