1. 程式人生 > >oracle中複製一個使用者

oracle中複製一個使用者

現場人員需要將USRDB使用者複製出來,弄個USRDB1使用者,在這個使用者上匯入資料做測試。

複製方案的思路:
1.查USRDB的預設表空間,PROFILE,系統許可權,物件許可權,角色,
2.建新使用者,授權,
3.匯出USRDB方案
4.匯入方案

步驟如下:

[sql] view plaincopyprint?
  1. -- 1.查USRDB使用者的資訊
  2. SQL> select default_tablespace, temporary_tablespace,profile from dba_users where username='USRDB';  
  3. DEFAULT_TABLESPACE             TEMPORARY_TABLESPACE           PROFILE  
  4. ------------------------------ ------------------------------ ------------------------------
  5. CBS_USER_DAT                   TEMPDEFAULT
  6. -- 2.建USRDB1使用者
  7. SQL> createuser USRDB1 identified by USRDB1 default tablespace CBS_USER_DAT;  
  8. -- 3.查出USRDB的系統許可權,物件許可權,角色
  9. SQL> select'grant '||privilege||' to USRDB1;'
    from dba_sys_privs where grantee='USRDB';  -->系統許可權
  10. 'GRANT'||PRIVILEGE||'TOUSRDB1;'
  11. ----------------------------------------------------------
  12. grantCREATEANYSEQUENCEto USRDB1;  
  13. grantCREATESEQUENCEto USRDB1;  
  14. grantCREATEVIEWto USRDB1;  
  15. grant UNLIMITED TABLESPACE to USRDB1;  
  16. grantCREATEANYTRIGGER
    to USRDB1;  
  17. grantCREATEPROCEDUREto USRDB1;  
  18. grantCREATEANYPROCEDUREto USRDB1;  
  19. grantCREATEANYTABLEto USRDB1;  
  20. rows selected.  
  21. SQL> select'grant '||privilege||' on '||table_name||' to USRDB1;'from dba_tab_privs where grantee='USRDB';  -->物件許可權
  22. norows selected  
  23. SQL> select'grant '||granted_role||' to USRDB1;'from dba_role_privs where grantee='USRDB';  -->角色
  24. 'GRANT'||GRANTED_ROLE||'TOUSRDB1;'
  25. ------------------------------------------------
  26. grant RESOURCE to USRDB1;  
  27. grantCONNECTto USRDB1;  
  28. grant DBA to USRDB1;  
  29. -- 4.給USRDB1使用者制授權
  30. 執行上一步驟執行得到的結果  
  31. grantCREATEANYSEQUENCEto USRDB1;  
  32. grantCREATESEQUENCEto USRDB1;  
  33. grantCREATEVIEWto USRDB1;  
  34. grant UNLIMITED TABLESPACE to USRDB1;  
  35. grantCREATEANYTRIGGERto USRDB1;  
  36. grantCREATEPROCEDUREto USRDB1;  
  37. grantCREATEANYPROCEDUREto USRDB1;  
  38. grantCREATEANYTABLEto USRDB1;  
  39. grant RESOURCE to USRDB1;  
  40. grantCONNECTto USRDB1;  
  41. grant DBA to USRDB1;  
  42. -- 5.匯出USRDB方案
  43. exp "'sys/oracle as sysdba'" owner=USRDB file=USRDBl.dmp rows=n   -->因為不需要導資料,所以加了rows=n
  44. -- 6.匯入方案
  45. imp "'sys/oracle as sysdba'" fromuser=USRDB touser=USRDB1 file=USRDBll.dmp