oracle – 向不同架构的用户授予权限
发布时间:2021-05-18 02:04:56 所属栏目:站长百科 来源:网络整理
导读:我在Schema A中有表.我使用模式A中的表在Schema B中创建了视图. 我想授予用户权限,以便从Schema B中的视图中选择数据. 为了实现这个目的,我知道我们必须在Schema A中的表上为用户B启用grant选项. 但是我想在一个脚本中完成它(这个脚本必须在模式B中).有没有
我在Schema A中有表.我使用模式A中的表在Schema B中创建了视图. 我想授予用户权限,以便从Schema B中的视图中选择数据. 为了实现这个目的,我知道我们必须在Schema A中的表上为用户B启用grant选项. 所以你想要的脚本看起来像这样: grant select on user_a.t23 to user_b / grant select on user_a.t42 to user_b / create view user_b.v_69 as select t23.col1,t42.col2 from user_a.t42 join user_a.t23 on (t42.id = t23.id) / grant select on user_b.v_69 to user_c / 一个常见的场景是我们有一套单独的脚本,这些脚本已被编写为由不同的用户运行,但我们现在需要捆绑到单个部署中.原始脚本不包含模式名称,并且有很多很好的理由可以解释为什么我们不想在脚本中对它们进行硬编码. 构建该主脚本的一种方法是使用更改CURRENT_SCHEMA语法: alter session set current_schema=USER_A / @run_grants_to_userb.sql alter session set current_schema=USER_B / @create_view69.sql @run_grants_to_userc.sql 我们仍然需要DBA用户来运行主脚本.切换当前模式的一个优点是它允许我们部署像数据库链接这样的对象,这些对象通过语法的怪癖在其声明中不能具有模式名称.一个问题是用户不会改变,因此使用USER伪列的脚本可能会产生不需要的结果. (编辑:广西网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐