重慶思莊技術(shù)分享——如何區(qū)分哪些用戶是ORACLE系統(tǒng)提供的?
如何區(qū)分哪些用戶是ORACLE系統(tǒng)提供的?
有些時(shí)候,我們要清理數(shù)據(jù)庫時(shí),想把數(shù)據(jù)庫中所有非系統(tǒng)自帶的用戶全部刪除,在12C以前,我們只能通過人肉的方式,從12C 開始,多了一個(gè)字段: ORACLE_MAINTAINED如果時(shí)系統(tǒng)自帶的,該值為Y,否則為N
就很好辦了,直接使用以下語句就可以找出系統(tǒng)自帶的用戶了。
從dba_users ORACLE_MAINTAINED='Y'中選擇用戶名,account_status,ORACLE_MAINTAINED;
SQL>選擇用戶名,account_status從dba_users ORACLE_MAINTAINED='Y';
用戶名 ACCOUNT_STATUS
------------------------- ------------------------------
系統(tǒng) 打開 AUDSYS 鎖定 系統(tǒng) 打開
輸出 鎖定 GSMADMIN_INTERNAL 鎖定 GSMUSER 鎖定 GSMroot用戶 鎖定 dip 鎖定 REMOTE_SCHEDULER_AGENT 鎖定 DBSFWUSER 鎖定 ORACLE_OCM 鎖定 系統(tǒng)$UMF 鎖定 DBSNMP 已鎖定
APPQOSSYS 鎖定 GSMCATUSER 鎖定 GGSYS 鎖定 XDB 鎖定 匿名 過期 &鎖定 WMSYS 鎖定 OJVMSYS 鎖定 CTXSYS 已過期 &鎖定 ORDSYS LOCK ORDDATA LOCK
ORDPLUGINS
LOCK 鎖定 SI_INFORMTN_SCHEMA 鎖定 MDSYS 鎖定 OLAPSYS 鎖定
MDDATA 鎖定 LBACSYS 鎖定
DVF 鎖定 DVSYS 鎖定 系統(tǒng)備份 鎖定 系統(tǒng)DGG 鎖定 系統(tǒng)km 鎖定 系統(tǒng)rac 鎖定 XS$NULL 已過期 并鎖定
36 行已選中。
與一個(gè)新創(chuàng)建的庫對比可以發(fā)現(xiàn)是一致的:
SQL> select username,ACCOUNT_STATUS from dba_users;
用戶名 ACCOUNT_STATUS
------------------------- ------------------------------
系統(tǒng) 開放
系統(tǒng) 打開
XS$NULL 過期 & 鎖定 OJVMSYS 鎖定 LBACSYS 鎖定 OUTLN 鎖定 SYS$UMF 鎖定 DBSNMP 鎖定 APPQOSSYS 鎖定 DBSFWUSER 鎖定 GGSYS 鎖定 匿名 過期 & 鎖定
CTXSYS 過期 & 鎖定 DVSYS 鎖定 DVF 鎖定 GSMADMIN_INTERNAL 鎖定 MDSYS 鎖定 OLAPSYS 鎖定 XDB 鎖定 WMSYS 鎖定 GSMCATUSER 鎖定 MDDATA 鎖定 系統(tǒng)備份鎖定 REMOTE_SCHEDULER_AGENT 鎖定 GSMUSER 鎖定 系統(tǒng)拉克鎖定
GSMROOTUSER 鎖定SI_INFORMTN_SCHEMA鎖定
AUDSYS 鎖定 DIP 鎖定 ORDPLUGINS 鎖定 SYSKM 鎖定 ORDDATA 鎖定 ORACLE_OCM 鎖定 SYSDG 鎖定 ORDSYS 鎖定
36 行已選中。