lockdown profile 12c之後的許可權控制新特性
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部落格 ” ,連結:http://blog.itpub.net/31404823/viewspace-2715468/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 許可權控制
- Linux的許可權控制Linux
- Spring Boot 之 RESRful API 許可權控制Spring BootAPI
- shiro許可權控制
- 許可權之選單許可權
- 如何用 Vue 實現前端許可權控制(路由許可權 + 檢視許可權 + 請求許可權)Vue前端路由
- 前端如何配合後端完成RBAC許可權控制前端後端
- 後端基於方法的許可權控制--Spirng-Security後端
- 資料分析的許可權控制
- Linux特殊許可權之suid、sgid、sbit許可權LinuxUI
- Laravel實現許可權控制Laravel
- React基於RBAC的許可權控制React
- SAP Business Application Studio的許可權控制APP
- 打造自己的系統許可權控制
- casbin基於golang的許可權控制Golang
- 你不知道的前端·許可權控制篇 之 中後臺系統——故事化前端
- 小知識:軟體開發的許可權控制和許可權驗證
- k8s結合jumpserver做kubectl許可權控制 使用者在多個namespaces的訪問許可權 rbac許可權控制K8SServernamespace訪問許可權
- 許可權維持專題:域控制器許可權維持
- Java 訪問許可權控制(6)Java訪問許可權
- vue-router控制路由許可權Vue路由
- 許可權控制及AOP日誌
- springboot-許可權控制shiro(二)Spring Boot
- etcd套路(四)auth許可權控制
- Spring MVC 整合 Shiro 許可權控制SpringMVC
- Linux 許可權控制的基本原理Linux
- 淺談 Orbeon form builder 的許可權控制ORBORMUI
- 12c RMAN新特性之Recover Table
- vue後臺管理系統許可權控制思考與實踐Vue
- django開發之許可權管理(一)——許可權管理詳解(許可權管理原理以及方案)、不使用許可權框架的原始授權方式詳解Django框架
- DRF內建許可權元件之自定義許可權管理類元件
- MYSQL學習筆記13: DCL許可權控制(使用者許可權操作)MySql筆記
- 一對一原始碼,前端頁面許可權和按鈕許可權控制原始碼前端
- 基於 Spring Security 的前後端分離的許可權控制系統Spring後端
- 使用nginx控制ElasticSearch訪問許可權NginxElasticsearch訪問許可權
- Atlas 2.1.0 實踐(4)—— 許可權控制
- SpringBoot(一) 如何實現AOP的許可權控制Spring Boot
- 前端許可權控制系統的實現思路前端