12c中PROFILE在PDB和CDB中是公用的,不過創建的profile名稱在CDB和PDB有所不同。
如:
1.CDB中創建Profile
SQL> show con_name CON_NAME ------------------------------ CDB$ROOT SQL>CREATE PROFILE est_a LIMIT SESSIONS_PER_USER UNLIMITED CPU_PER_SESSION UNLIMITED CPU_PER_CALL 3000 CONNECT_TIME 45 LOGICAL_READS_PER_SESSION DEFAULT LOGICAL_READS_PER_CALL 1000 PRIVATE_SGA 15K OMPOSITE_LIMIT 5000000; CREATE PROFILE est_a LIMIT * ERROR at line 1: ORA-65140: invalid common profile name
提示無效profile name,CDB中創建profile,名稱需要c##開頭和創建用戶一樣。當然這個規則也可以修改。
SQL>CREATE PROFILE c##test_b LIMIT SESSIONS_PER_USER UNLIMITED CPU_PER_SESSION UNLIMITED CPU_PER_CALL 3000 CONNECT_TIME 45 LOGICAL_READS_PER_SESSION DEFAULT LOGICAL_READS_PER_CALL 1000 PRIVATE_SGA 15K 9 COMPOSITE_LIMIT 5000000; Profile created. SQL>
1.1 CDB中查詢profile
SQL> select distinct profile from dba_profiles; PROFILE -------------------------------------------------------------------------------- ORA_STIG_PROFILE C##TEST_A C##TEST_B DEFAULT
1.2CDB中創建用戶並指定新建的PROFILE
SQL> create user c##test identified by lei; User created. SQL> alter user c##test profile c##test_b; User altered. SQL> col username for a15 SQL> col profile for a25 SQL> select t.username,T.profile from dba_users t where t.username='C##TEST'; USERNAMEPROFILE --------------- ------------------------- C##TEST C##TEST_B
2.PDB中創建用戶並指定CDB中創建的profile
SQL> alter session set container=zhixin; Session altered. SQL> create user test_user identified by lei; User created. SQL> alter user test_user profile c##test_b; User altered. SQL> select t.username,T.profile from dba_users t where t.username='TEST_USER'; USERNAME PROFILE --------------- ------------------------- TEST_USER C##TEST_B
使用都沒有問題.
轉:http://www.cndba.cn/Expect-le/article/271
