加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

oracle – 向差异架构的用户授予权限

发布时间:2021-05-16 23:47:14 所属栏目:站长百科 来源:网络整理
导读:我在Schema A中有表.我行使模式A中的表在Schema B中建设了视图. 我想授予用户权限,以便从Schema B中的视图中选择数据. 为了实现这个目标,我知道我们必需在Schema A中的表上为用户B启用grant选项. 可是我想在一个剧本中完成它(这个剧本必需在模式B中).有没有

我在Schema A中有表.我行使模式A中的表在Schema B中建设了视图.

我想授予用户权限,以便从Schema B中的视图中选择数据.

为了实现这个目标,我知道我们必需在Schema A中的表上为用户B启用grant选项.
可是我想在一个剧本中完成它(这个剧本必需在模式B中).有没有步伐行使模式A的用户名/暗码来执行此操纵.

想要行使单个脚原来陈设变动并不有数.题目是,这样的剧本必要由高级用户运行,由于它必要具有任何级此外体系权限.这凡是意味着DBA帐户,最好是应用措施帐户,但SYSTEM或SYS.

以是你想要的剧本看起来像这样:

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伪列的剧本也许会发生不必要的功效.

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读