数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

更改Oracle用户名及外部用户验证授权


发布日期:2019年04月22日
 
更改Oracle用户名及外部用户验证授权
我的测试机上安装了MS的AXAPTA版本应用帐号采用os authentication默认采用前缀ops$运行一段时间后由于用户要求需要改一个帐号名

解决方法

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

在新建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

SYSDBMS_RULE_ADMGRANT_SYSTEM_PRIVILEGE(

PRIVILEGE => SYSDBMS_RULE_ADMALTER_ANY_RULE_SET

GRANTEE => OPS$BBBAXDVP

GRANT_OPTION => TRUE);

END;

/

GRANT EXECUTE ANY LIBRARY TO OPS$AVONAPAXDVP;

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

SYSDBMS_RULE_ADMGRANT_SYSTEM_PRIVILEGE(

*

ERROR at line :

ORA: invalid character

ORA: invalid value OPS$BBBAXDVP USER/ROLE should be of the form

[SCHEMA]NAME

ORA: invalid character

ORA: at SYSDBMS_RULE_ADM line

ORA: at line

ROOT CAUSE

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

给用户名加单引号

GRANTEE => OPS$BBBAXDVP

GRANT EXECUTE ANY LIBRARY TO OPS$AVONAPAXDVP

               

上一篇:Oracle9i自动PGA管理的新特性

下一篇:Oracle触发器语法及实例