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