本帖最后由 郑全 于 2022-3-16 12:04 编辑
1 说明在12.2中,可以利用PDB lockdown profile来限制用户对PDB的某些明感危险操作,如:ALTER SYSTEM操作。 注意:这里不管你是什么用户,哪怕是sys用户也一样被限制,一视同仁。 2 具体例子创建一个lockdown profile来限制ALTER SYSTEM操作,除了ALTER SYSTEM FLUSH SHARED POOL。 2.1 创建lockdown profileSQL> 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 profileLockdown profile支持动态修改,修改完立即生效。
ALTER LOCKDOWN PROFILE high_pro ENABLE STATEMENT=('ALTER SYSTEM');
2.6 删除lockdown profile
DROP LOCKDOWN PROFILE high_pro;
|