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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料安全之許可權控制
- 降魔篇之springmvc許可權控制SpringMVC
- Elasticsearch 許可權控制Elasticsearch
- 許可權之選單許可權
- oracle 12C 新特性之臨時undo控制Oracle
- Linux的許可權控制Linux
- 如何用 Vue 實現前端許可權控制(路由許可權 + 檢視許可權 + 請求許可權)Vue前端路由
- Spring Boot 之 RESRful API 許可權控制Spring BootAPI
- 前端如何配合後端完成RBAC許可權控制前端後端
- Android新特性解析一:執行時許可權Android
- Linux許可權控制Linux
- Appfuse:許可權控制APP
- 後端基於方法的許可權控制--Spirng-Security後端
- 資料分析的許可權控制
- Solaris下控制ftp的許可權FTP
- 【Struts2】:Interceptor實戰之許可權控制
- Laravel實現許可權控制Laravel
- mysql 許可權控制筆記MySql筆記
- oracle列級許可權控制Oracle
- .NET 程式許可權控制、獲得管理員許可權程式碼
- Oracle 12c新特性之Sequence的Session特性OracleSession
- 打造自己的系統許可權控制
- OGG的加密和許可權控制加密
- 許可權控制下的SQL寫法SQL
- React基於RBAC的許可權控制React
- casbin基於golang的許可權控制Golang
- Oracle的物件許可權、角色許可權、系統許可權Oracle物件
- Linux 許可權管理之目錄許可權限制Linux
- 你不知道的前端·許可權控制篇 之 中後臺系統——故事化前端
- 小知識:軟體開發的許可權控制和許可權驗證
- MAUI之安卓許可權UI安卓
- 許可權控制及AOP日誌
- Java 訪問許可權控制(6)Java訪問許可權
- vue-router控制路由許可權Vue路由
- 下載許可權控制機制
- k8s結合jumpserver做kubectl許可權控制 使用者在多個namespaces的訪問許可權 rbac許可權控制K8SServernamespace訪問許可權
- 12c 新增許可權Inherit privilege說明
- 淺談 Orbeon form builder 的許可權控制ORBORMUI