ITPub博客

首页 > 数据库 > Oracle > lockdown profile 12c之后的权限控制新特性

lockdown profile 12c之后的权限控制新特性

原创 Oracle 作者:随风映雪 时间:2020-08-28 13:16:01 0 删除 编辑

  LOCKDOWN profile

有时候用户有这样的需求,我希望不能做这个用户不能做drop truncate等操作。

在12c之前,需要通过trigger来实现,但是在12c及之后,可以用过 lockdown profile的特性,来实现权限的细粒化操作。

不仅仅可以限制pdb中local用户的操作,甚至是sys等common user也能限制。

且不仅仅是针对表,也可以针对数据库的某些操作,比如 alter system。

整个流程如下,仅供参考,(测试环境为19c-linux7-rac)

 

 1   创建lockdown profile ,并设置查看

CREATE LOCKDOWN PROFILE profile_name

[FROM static_base_profile | INCLUDING dynamic_base_profile ];

例子:

SQL> CREATE LOCKDOWN PROFILE test_profile;

Lockdown Profile created


限制alter system操作的profile

SQL> ALTER LOCKDOWN PROFILE test_profile DISABLE STATEMENT=('ALTER SYSTEM');

Lockdown Profile altered.


允许flush shared pool

SQL> ALTER LOCKDOWN PROFILE test_profile ENABLE STATEMENT=('ALTER SYSTEM') CLAUSE=('FLUSH SHARED_POOL');

Lockdown Profile altered.


禁止droptable

SQL> ALTER LOCKDOWN PROFILE test_profile DISABLE STATEMENT=('DROP TABLE');


 查看

SET LINESIZE 150
COL PROFILE_NAME FORMAT a20
COL RULE FORMAT a20
COL CLAUSE FORMAT a25
SELECT PROFILE_NAME, RULE, CLAUSE, STATUS FROM CDB_LOCKDOWN_PROFILES;


2 启用和查看pdb 的lockdown profile

SQL> show pdbs;

    CON_ID CON_NAME      OPEN MODE  RESTRICTED

---------- ------------------------------ ---------- ----------

 2 PDB$SEED   READ ONLY  NO

 3 pdbtest       READ WRITE  YES

 

SQL> alter session set container=pdbtest;

Session altered.

--为LEIPDB的PDB启用该lockdown profile

 

SQL> alter system set PDB_LOCKDOWN = test_profile;

System altered.

 

SQL> SHOW PARAMETER PDB_LOCKDOWN

NAME          TYPE    VALUE

--------  -------- ----------

pdb_lockdown       string   test_profile;

 

 3.   查看和测试

 

SELECT * from DBA_LOCKDOWN_PROFILES

–在当前PDB下执行其他ALTER SYSTEM命令

 

SQL> alter system switch logfile;

alter system switch logfile

*

ERROR at line 1:

ORA-01031: insufficient privileges

 

flush shared pool由于enable了。所以可以执行

SQL> alter system FLUSH SHARED_POOL;
System altered.

能创建表,但是无法drop表


4.     修改和删除

 如果想要解除的,也很简单。


Lockdown profile支持动态修改,修改完立即生效。

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


删除lockdown profile

DROP LOCKDOWN PROFILE test_profile;


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31404823/viewspace-2715468/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: linux sshd服务异常
请登录后发表评论 登录
全部评论
擅长ORACLE,pg,mysql等数据库,希望能持续分享数据库相关的知识,以及一些平常工作中遇到的问题

注册时间:2016-10-23

  • 博文量
    22
  • 访问量
    38668