Oracle数据库管理每周一例(12.2,18c,19c) 2020-07-02

    技术2022-07-13  75

    Oracle数据库管理每周一例(12.2,18c,19c) 2020-07-02

    第五期 在PDB中限制一些命令执行1.需求背景2.Lockdown Profile3.创建并使用Lockdown Profile4.管理Lockdown Profile5.查询、删除Lockdown Profile下期预告:

    第五期 在PDB中限制一些命令执行

    1.需求背景

    在多租户环境中,经常会出现在PDB中需要赋予某些业务使用用户较大权限(比如DBA权限)或者需要给业务开发、维护人员pdb_admin用户。这种情况下对DBA管理整个数据库是有非常大的挑战的,比如非DBA人员调整PDB的PGA、SGA、IO等配置,造成该PDB影响其他PDB运行,甚至因为使用内存超过CDB总内存引起数据库故障。 因此,在PDB中限制一些命令执行是多租户数据库管理非常重要的一部分。

    2.Lockdown Profile

    从12c R2版本开始,Oracle引入了lockdown porfile功能,在PDB中隔离某些危险操作,比如’alter system’操作。而且这里需要注意一点,就算是sys用户,也会受到lockdown profile配置限制。

    3.创建并使用Lockdown Profile

    创建名为test_pro的lockdown profile,PDB中不能执行除’alter system flush shared_pool’以外的’alter system’操作。

    CREATE LOCKDOWN PROFILE test_pro; ALTER LOCKDOWN PROFILE test_pro DISABLE STATEMENT=('ALTER SYSTEM'); ALTER LOCKDOWN PROFILE test_pro ENABLE STATEMENT=('ALTER SYSTEM') CLAUSE=('FLUSH SHARED_POOL');

    在PDB1中启用lockdown profile

    alter session set container=pdb1; alter system set pdb_lockdown=test_pro;

    4.管理Lockdown Profile

    在PDB开启lockdown profile之后,会出现一个问题,当需要对PDB参数进行调整时,这些操作就无法执行,甚至是在PDB中停用lockdown profile的操作都无法执行。 这种情况下只能在CDB中调整lockdown profile的配置:

    ALTER LOCKDOWN PROFILE test_pro ENABLE STATEMENT=('ALTER SYSTEM');

    在完成需求变更后,还需要将lockdown profile恢复到正常限制状态,以免PDB中其他高权限用户误操作:

    ALTER LOCKDOWN PROFILE test_pro DISABLE STATEMENT=('ALTER SYSTEM'); ALTER LOCKDOWN PROFILE test_pro ENABLE STATEMENT=('ALTER SYSTEM') CLAUSE=('FLUSH SHARED_POOL');

    5.查询、删除Lockdown Profile

    可以通过以下命令查询lockdown profile:

    SELECT * from DBA_LOCKDOWN_PROFILES;

    删除lockdown profile:

    DROP LOCKDOWN PROFILE test_pro;

    下期预告:

    记一次HPUX到Exadata的xtts数据迁移——准备篇。

    Processed: 0.012, SQL: 9