一般来说,很少需要修改角色名。而且biee角色名不能直接修改,只能采用创建新角色然后对新角色重新授权来间接实现修改角色。

但是这样有一个问题,如果需要修改的角色很多,或者需要授权的地方很多怎么办?

这个时候就只能采用程序的方式的来修改角色名了。

由于biee从11g起就采用了OPSS来管理角色,修改角色名就被分为了两步。

第一步 修改em中的角色名

第二步 修改rpd和catalog中的角色名

第一步 修改em中的角色名

修改em中的角色名,可以采用两种方式,一种是使用wlst脚本,另一种是使用java jmx接口。本文以wlst为例,讲解相关方法。

wlst是weblogic的管理脚本,可以和jython一起使用,能完成复杂的自动化运维操作。

wlst脚本有三种调用方式,分别是交互式、离线式和嵌入式。本文以离线式为例,其他两种方式请参考

Using the WebLogic Scripting Tool

离线式比较好理解,就是用wlst解释器调用py (Jython)脚本,完成相关操作。

具体方式为:

$FMW/oracle_common/common/bin/wlst.sh
然后使用execfile调用脚本/home/biee06/appRoleRename.py
wls:/offline> execfile('/home/biee06/appRoleRename.py')

appRoleRename.py示例程序如下:

该程序会用于给所有黑名单之外的角色“添加"前缀

注:先创建新角色,然后复制角色成员,最后删除旧角色;大家可以根据自己的需要来修改下面的程序

from cStringIO import StringIO
import sys
import reblacklist = ['BIAdministrator','BIAuthor','BIConsumer','BISystem']; #角色黑名单,不会修改黑名单中的角色
rolelist = [];
cux_prefix = 'FBUBI_'  #需要添加的前缀
admin_user ='weblogic'
admin_password = 'admin123'
admin_url = 't3://localhost:8701'def createRole( roleName ):"创建角色"createAppRole(appStripe="obi", appRoleName= roleName) print "角色",roleName,"创建成功"return;def deleteRole( roleName ):"删除角色"deleteAppRole(appStripe="obi", appRoleName=roleName) ;print "删除角色",roleName,"成功"return;def deleteRoleStartWith( startWith ):"删除以startWith开头的角色"listRoles()tmpList = rolelist[:];for r in tmpList:if r.startswith(startWith):deleteAppRole(appStripe="obi", appRoleName=r) ;print "删除角色",r,"成功"return;def addMembers( roleName,memberDict):"添加成员"grantAppRole(appStripe="obi", appRoleName=roleName, principalClass=memberDict['principalClass'], principalName=memberDict['principalName'], forceValidate="false") print "成员",memberDict['Type'],memberDict['principalName'],"添加成功"return;def getMembers( roleName ):"获取角色成员列表"oldstdout = sys.stdoutsys.stdout = mystdout = StringIO()listAppRoleMembers(appStripe="obi",appRoleName= roleName);sys.stdout = oldstdoutapp_roles=mystdout.getvalue()allLines = app_roles.strip().splitlines()members=[];for line in allLines:matchObj=re.search('Principal Clz Name : ([^,]+), Principal Name : (\w+), Type : (\w+)',line)if matchObj:d = {'principalClass': '', 'principalName': ''};d['principalClass'] = matchObj.group(1)d['principalName'] = matchObj.group(2)d['Type'] = matchObj.group(3)members.append(d)else:print "角色[",roleName,"]没有成员"return membersdef listRoles():"获取角色列表"oldstdout = sys.stdoutsys.stdout = mystdout = StringIO()listAppRoles(appStripe="obi")sys.stdout = oldstdoutapp_roles=mystdout.getvalue()allLines = app_roles.strip().splitlines()for line in allLines:matchObj=re.search('Principal Name : (\w+)',line)if matchObj:roleName = matchObj.group(1)if roleName in blacklist:continueelse:rolelist.append(roleName)else:print "No match!!"return;print 'Connecting...'#======================main=========================================try:connect(admin_user, admin_password, admin_url)
except:print "Error while trying to connect server, please make sure server is running."print "====遍历角色======="
listRoles()
if len(rolelist) > 0 :print "一共找到",len(rolelist),"个角色"print "====开始创建角色======="
for role in rolelist:createRole(cux_prefix+role)print "=====开始添加成员======="for role in rolelist:members=getMembers( role )for member in members:if member['Type'] == 'APP_ROLE':member['principalName'] = cux_prefix+member['principalName']addMembers(cux_prefix+role,member)print "=========删除旧角色============="
for role in rolelist:deleteRole(role)print "=======操作结束========="disconnect()

除了执行wlst.sh之外,还可以直接使用java weblogic.WLST appRoleRename.py的方式来调用脚本。但在执行java weblogic.WLST之前需要先设置好CLASSPATH和PATH环境变量。

方法是直接加载如下脚本来完成相关变量的设置:

source  $FMW/Oracle_Home/wlserver/server/bin/setWLSEnv.sh

第二步 修改rpd和catalog中的角色名

可以使用datamodel.sh renameapproles来修改rpd和catalog中的角色名

语法如下:

./datamodel.sh renameapproles -h
usage: renameapproles -T <approlenamelist.json> [-L <plugin list>] -U <cred user> [-P <cred password>] [-SI <service instance>] [-S <host>] [-N <port>] [-SSL]

其中approlenamelist.json是一个json格式的文本,需要我们自己编写,例如

{
"Title":"Target Application Roles",
"App-Roles":[
{ "oldname":"app1", "newname":"bi_app1" },
{ "oldname":"app2", "newname":"bi_app2" }
]
}

调用示例:

cd $fmw/user_projects/domains/bi/bitools/bin

./datamodel.sh renameapproles -T approlenamelist.json -U weblogic -P admin123 -SI ssi

最后记得重启一下整个biee,以便让修改生效。

BIEE 12c 使用wlst脚本修改角色名相关推荐

  1. BIEE 12C更换rpd资料库

    BIEE 12C与11G在更新rpd资料库有所区所 11g: 修改NQSConfig.INI 修改Oracle BI Server的配置文件 $OBIEE_HOME\server\Config\NQS ...

  2. biee12c连接hive_Oracle BIEE 12c 安装配置手册.doc

    Oracle BIEE 12c 安装配置手册 Oracle BIEE 12c系统安装配置文档 仇辉 2015年12月 文档控制 编制 日期作者版本变更参考2015-12-18仇辉V1.02015-12 ...

  3. biee 12c linux 安装,oracle biee 12c linux ha 集群安装配置手册.pdf

    oracle biee 12c linux ha 集群安装配置手册 Oracle BIEE 12c Linux 系统集群安装配置文档 仇 辉 2017 年 2 月 1 1 文档控制 编制 日期 作者 ...

  4. 用Shell脚本在推出的RAC节点上批量部署32个Oracle11gR2 RAC备份恢复案例场景的方法PART2...

    8.11 9d_当前控制文件损坏_只读user表空间完全恢复_用控制文件脚本_不需备份 在PXE推送端主机上运行: [root@server1 ~]# bcl --RACGRID11g13 9d 场景 ...

  5. WLST 命令和变量

    下列部分将详细描述 WLST 命令和变量.主题包括: WSLT 命令类别概述 浏览命令 控制命令 部署命令 诊断命令 编辑命令 信息命令 生命周期命令 节点管理器命令 树命令 WLST 变量参考 WS ...

  6. 【赵渝强老师】使用Weblogic的WLST工具

    一.什么是Weblogic WLST? WebLogic 脚本工具 (WebLogic Scripting Tool , WLST) 是一种命令行脚本界面,系统管理员和操作员用它来监视和管理 WebL ...

  7. Oracle Biee 入门

    从没用过Oracle BIEE ,小白一个,网上的资料也并不是很多,仅仅是搭建环境就踩踩了不少坑. Oracle BIEE(Oracle Business Intelligence Enterpris ...

  8. linux端安装weblogic服务器,61.linux下weblogic安装与配置

    image.png image.png 3.在weblogic用户下,配置jdk环境,并重新加载环境变量,使配置的环境生效 su - weblogic vim .bash_profile export ...

  9. WebLogic域配置策略

    WebLogic域配置策略--手动和模板选项,第一部分 域含有BEA WebLogic Server实例的配置信息.它包含有关服务器.集群和机器的配置信息.域还含有关于资源,例如Java数据库连接(J ...

最新文章

  1. 李彦宏的文字游戏:百度10篇论文被自然语言处理顶级会议ACL 2019录用
  2. android chrome cast,有了它 任何安卓设备瞬间变身ChromeCast
  3. Markdown_LaTex_极限符号
  4. 「软件测试」刚从腾讯面试出来,留下了这些面试笔记
  5. 广播路由算法: 如何优雅地传递悄悄话?
  6. file_operation(文件操作)file(文件)inode(节点)
  7. hdfs 指令_HDFS 常用命令
  8. 将[ESRI中国社区-GIS大讲堂]中Jueery关于ArcGIS Server的帖子内容整理成PDF发上来
  9. 华三ap设置无线服务器,H3C无线控制器V5版本配置AP上线的方法
  10. H.264之lookahead
  11. python 日本 地图 热力图_【python实战】热力图——百度地图API
  12. u盘盘符不显示 win10_电脑插上优盘不显示怎么办_win10电脑插上优盘不显示弹窗的处理方法...
  13. 固态硬盘计算机怎么自定义分区,如何设置SSD固态硬盘为主硬盘 怎样把SSD分区设置成主分区?...
  14. 面试题01.05.一次编辑
  15. 2023高频经典前端面试题(es6+webpack+http网络+性能优化中篇,含答案)
  16. ps打造人物光滑的肤色
  17. AutoCAD .NET 二次开发实例:批量文本查找替换
  18. POWER BI filter函数的筛选条件可以使用度量值作为筛选条件
  19. 9个酒瓶子砸向Google:google不做坏事么?
  20. Week8 作业 C - 班长竞选 SCC Kosaraju HDU - 3639

热门文章

  1. 【调剂】国家蛋白质科学中心·北京贺福初院士课题组招收硕士研究生
  2. java语言程序设计第二版课后答案吴倩_Java语言程序设计
  3. sqlserver 2012补丁更新
  4. HttpPrinter实现web打印功能
  5. WINDOWS语言包对应关系表
  6. sma4win数据处理_[原创]Win10 SXE使用-申精
  7. 汇编炮弹弹道计算实验
  8. Windows 下安装与使用 vscode
  9. 最简单的电机正反转+PWM控制
  10. android 方块平移动画,android – 在Surface View中动画和旋转图像