1 说明
在12.2中,可以利用PDB lockdown profile来限制用户对PDB的某些明感危险操作,如:ALTER SYSTEM操作。
注意:这里不管你是什么用户,哪怕是sys用户也一样被限制,一视同仁。
2 具体例子
创建一个lockdown profile来限制ALTER SYSTEM操作,除了ALTER SYSTEM FLUSH SHARED POOL。
2.1 创建lockdown profile
SQL> CREATE LOCKDOWN PROFILE high_pro;
Lockdown Profile created
SQL> ALTER LOCKDOWN PROFILE high_pro DISABLE STATEMENT=('ALTER SYSTEM');
Lockdown Profile altered.
SQL> ALTER LOCKDOWN PROFILE high_pro ENABLE STATEMENT=('ALTER SYSTEM') CLAUSE=('FLUSH SHARED_POOL');
Lockdown Profile altered.
2.2 启用lockdown profile
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 LEIPDB READ WRITE YES
SQL> alter session set container=leipdb;
Session altered.
--为LEIPDB的PDB启用该lockdown profile
SQL> alter system set PDB_LOCKDOWN =high_pro;
System altered.
SQL> SHOW PARAMETER PDB_LOCKDOWN
NAME TYPE VALUE
------------------- ----------------- ------------------
pdb_lockdown string HIGH_PRO
2.3 查看lockdown profile
SELECT * from DBA_LOCKDOWN_PROFILES
2.4 测试
--在当前PDB下执行其他ALTER SYSTEM命令
SQL> alter system switch logfile;
alter system switch logfile
*
ERROR at line 1:
ORA-01031: insufficient privileges
这里我是用sys用户操作的也是不允许的。
--执行flush shared pool看看
SQL> alter system FLUSH SHARED_POOL;
System altered.
可以看到是没问题的。
注意:千万不要在生产环境执行该语句。
2.5 修改lockdown profile
Lockdown profile支持动态修改,修改完立即生效。
ALTER LOCKDOWN PROFILE high_pro ENABLE STATEMENT=('ALTER SYSTEM');
2.6 删除lockdown profile
DROP LOCKDOWN PROFILE high_pro;
版权声明:本文为博主原创文章,未经博主允许不得转载。
lockdown profile