熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

更改Oracle用戶名及外部用戶驗證授權

2013-11-13 15:41:29  來源: 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
 


From:http://tw.wingwit.com/Article/program/Oracle/201311/17147.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.