oracle中複製一個使用者
阿新 • • 發佈:2019-02-07
現場人員需要將USRDB使用者複製出來,弄個USRDB1使用者,在這個使用者上匯入資料做測試。
複製方案的思路:
1.查USRDB的預設表空間,PROFILE,系統許可權,物件許可權,角色,
2.建新使用者,授權,
3.匯出USRDB方案
4.匯入方案
步驟如下:
[sql] view plaincopyprint?- -- 1.查USRDB使用者的資訊
- SQL> select default_tablespace, temporary_tablespace,profile from dba_users where username='USRDB';
-
DEFAULT_TABLESPACE TEMPORARY_TABLESPACE PROFILE
- ------------------------------ ------------------------------ ------------------------------
- CBS_USER_DAT TEMPDEFAULT
- -- 2.建USRDB1使用者
- SQL> createuser USRDB1 identified by USRDB1 default tablespace CBS_USER_DAT;
- -- 3.查出USRDB的系統許可權,物件許可權,角色
-
SQL> select'grant '||privilege||' to USRDB1;'
- 'GRANT'||PRIVILEGE||'TOUSRDB1;'
- ----------------------------------------------------------
- grantCREATEANYSEQUENCEto USRDB1;
- grantCREATESEQUENCEto USRDB1;
- grantCREATEVIEWto USRDB1;
- grant UNLIMITED TABLESPACE to USRDB1;
-
grantCREATEANYTRIGGER
- grantCREATEPROCEDUREto USRDB1;
- grantCREATEANYPROCEDUREto USRDB1;
- grantCREATEANYTABLEto USRDB1;
- 8 rows selected.
- SQL> select'grant '||privilege||' on '||table_name||' to USRDB1;'from dba_tab_privs where grantee='USRDB'; -->物件許可權
- norows selected
- SQL> select'grant '||granted_role||' to USRDB1;'from dba_role_privs where grantee='USRDB'; -->角色
- 'GRANT'||GRANTED_ROLE||'TOUSRDB1;'
- ------------------------------------------------
- grant RESOURCE to USRDB1;
- grantCONNECTto USRDB1;
- grant DBA to USRDB1;
- -- 4.給USRDB1使用者制授權
- 執行上一步驟執行得到的結果
- grantCREATEANYSEQUENCEto USRDB1;
- grantCREATESEQUENCEto USRDB1;
- grantCREATEVIEWto USRDB1;
- grant UNLIMITED TABLESPACE to USRDB1;
- grantCREATEANYTRIGGERto USRDB1;
- grantCREATEPROCEDUREto USRDB1;
- grantCREATEANYPROCEDUREto USRDB1;
- grantCREATEANYTABLEto USRDB1;
- grant RESOURCE to USRDB1;
- grantCONNECTto USRDB1;
- grant DBA to USRDB1;
- -- 5.匯出USRDB方案
- exp "'sys/oracle as sysdba'" owner=USRDB file=USRDBl.dmp rows=n -->因為不需要導資料,所以加了rows=n
- -- 6.匯入方案
- imp "'sys/oracle as sysdba'" fromuser=USRDB touser=USRDB1 file=USRDBll.dmp