萤火虫网络
0531-85551080
3G通信资讯3G中国 3G国际 3G终端 3G前沿 4G技术   3G市场动态3G话题 3G项目 3G数据 3G资料 3G技术
3G人才培训3G培训 3G认证 3G人才 3G企业 3G专家   3G网络媒体3G会展 3G增值 3G网络 3G论坛 3G媒体
  欢迎您来到3G中国资讯网!
     首页 > 3G市场动态 > 3G数据  3G论坛 3G认证   

更改Oracle用户名及外部用户验证的授权问题
( http://3g.yhc360.com   2008-2-28 10:46:41 )
 

我的测试机上安装了MS的AXAPTA,4.1版本,应用帐号采用os authentication。默认采用前缀ops$。运行一段时间后,由于用户要求需要改一个帐号名。

解决方法:

1.为了保证原有的信息不丢失,决定采用新建一个schema,然后用exp/imp的方式将原帐号数据导入到新的schema.

2.在新建schema时,还要考虑到原有帐号的权限问题。问题如下:

在原有帐号中,可以看到有以下权限:

CREATE USER "OPS$AAAAXDVP"
IDENTIFIED EXTERNALLY
DEFAULT TABLESPACE AXTAB
TEMPORARY TABLESPACE AXTMP
PROFILE DEFAULT
ACCOUNT UNLOCK;
GRANT RESOURCE TO "OPS$BBBAXDVP";
GRANT CONNECT TO "OPS$BBBAXDVP";
ALTER USER "OPS$AVONAPAXDVP" DEFAULT ROLE ALL;

BEGIN
SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(
PRIVILEGE => SYS.DBMS_RULE_ADM.ALTER_ANY_RULE_SET,
GRANTEE => 'OPS$BBBAXDVP',
GRANT_OPTION => TRUE);
END;
/
GRANT EXECUTE ANY LIBRARY TO OPS$AVONAPAXDVP;

如果照此权限直接执行,会报如下错误:

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(
*
ERROR at line 2:
ORA-00911: invalid character 
ORA-24000: invalid value OPS$BBBAXDVP, USER/ROLE should be of the form 
[SCHEMA.]NAME 
ORA-00911: invalid character 
ORA-06512: at "SYS.DBMS_RULE_ADM", line 289 
ORA-06512: at line 2

ROOT CAUSE:

由于外部验证用户中,如'OPS$BBBAXDVP',带有一个''。直接执行时oracle会报错。可以这样解决:

给用户名加单引号:

--GRANTEE => '"OPS$BBBAXDVP"',

--GRANT EXECUTE ANY LIBRARY TO 'OPS$AVONAPAXDVP'

Google
 
  最新资讯排行
顶级智能新机HTCTouchPro
500万像素渐普及LG推出800万
山寨手机入侵PPC琦基i9高配智能
江宁打造中国首个"无线谷"核心圈层
3G市场竞争门槛提高价格战不再是有
互联网巨头布局“无线搜索”迎3G时
Wi-Fi联盟让无线语音成为可能
中东和北非地区的运营商实现基础设施
伊朗手机生产厂家欢迎降低手机进口关
中国电信将自建终端公司负责移动终端
  最新培训信息
基础课程在线培训1-1
基础课程在线培训1-2
基础课程在线培训1-4
基础课程在线培训3-2
基础课程在线培训1-3
基础课程在线培训2-1
基础课程在线培训4-1
基础课程在线培训2-2
基础课程在线培训3-1

您在本站有任何疑难问题请联系贝贝QQ:329683229 晶晶QQ:292701913 欢欢QQ:531069058 迎迎QQ:627254210我们的客服人员会即时为您解!
CopyRight © 2007 3G.yhc360.com, All Rights Reserved
鲁ICP备07021078号
萤火虫旗下网站