一、Profile文件概述:Profiles是Oracle安全策略的一個組成部分,當Oracle建立數據庫時,會自動建立名稱為Default的profile,當建立用戶沒有指定profile,那么oracle就將defalut分配給用戶。
1、默認情況下,用戶連接數據庫,形成回話,使用CPU和內存資源是沒有限制的。但是在一些高並發的應用,且多個應用部署到同一服務器上時,因為服務器的CPU和內存是有限的,所以,大多數企業會根據應用對於自身的重要性,來對各個庫進行內存和CPU的分配。除此之外,還有用戶的密碼管理,用戶的登錄嘗試次數,用戶的密碼鎖定后多長時間釋放,密碼生命周期等參數都是通過Profile來設置的,當然這里只列舉了一下部分!
2、Profile文件主要規定了資源使用的限制和密碼(也就是口令)使用的規則,Profile定義之后,可以做用到每個用戶之上,對每個用戶的安全活動進行限制。
3、下面Oracle建立數據庫時,生成的名為Default的profile
4、配置文件創建方法
create profile 配置文件名 limit
配置參數1 值1
配置參數2 值2
5、配置文件的使用方法
5.1、將配置文件中的規則指定給特定的用戶,這里拿Failed_Login_Attempts(在賬戶被鎖定前允許的登錄次數)舉例,其他的規則也是一樣,如果要指定個特定的用戶
左圖創建了一個test規則的profile,允許用戶在被鎖定前,登錄三次,如果失敗被鎖定2天,並將這個profile賦給了scott用戶,也就是說這個規則只是用於scott用戶
連續登錄三次,失敗后,賬戶被鎖定,如何解鎖用戶請參考Oracle 系統常用命令
5.2、修改默認的profile,使其作用於所有的用戶
左圖修改了安裝數據庫默認產生的profile文件,並修改了其參數,使所有的用戶必須在13天內修改密碼,否則將無法登錄,如果不理解口令,下面有介紹。
6、刪除profile
二、Profile 口令管理
1、Composite_Limite
指定一個會話的總的資源消耗, 以service units單位表示。oracle數據庫以有利的方式計算cpu_per_session, connect_time, logical_reads_per_session和private-sga總的service units
2、Session_Per_User
指定限制用戶的並發會話的數目
3、Cpu_Per_Session
指定會話的cpu時間限制, 單位為百分之一秒
4、Cpu_Per_Call
指定一次調用(解析、執行和提取)的cpu時間限制, 單位為百分之一秒
5、Logical_Reads_Per_Session
指定一個會話允許讀的數據塊的數目, 包括從內存和磁盤讀的所有數據塊
6、Logical_Read_Per_Call
指定一次執行sql(解析、執行和提取)調用所允許讀的數據塊的最大數目
7、Idle_Time
指定會話允許連續不活動的總的時間, 以分鍾為單位, 超過該時間, 會話將斷開。但是長時間運行查詢和其他操作的不受此限制
8、Connect_Time
指定會話的總的連接時間, 以分鍾為單位
9、Private_Sga
指定一個會話可以在共享池(sga)中所允許分配的最大空間, 以字節為單位。(該限制只在使用共享服務器結構時才有效, 會話在sga中的私有空間包括私有的sql和pl/sql, 但不包括共享的sql和pl/sql)
10、Failed_Login_Attempts和Password_Lock_Time
Failed_Login_Attempts設置賬戶在被鎖定之前允許登錄的次數
Password_Lock_Time 指定帳戶被鎖定的天數. 1/24/60對應的是1分鍾. 但是, 1分鍾后只有密碼正確了, 才可以自動解鎖. 如果該參數最后的值是UNLIMITED, 或需要立即給帳戶解鎖, 就需要DBA用手動方式來給帳戶解鎖.
11、 Password_Life_Time與Password_Grace_Time
他的作用是:強迫除dba之外的用戶在設置的天數內修改密碼!!!
這兩個口令是結合起來使用的,Password_Life_Time指定用戶賬戶的有效期,到達這個天數的用戶叫做到期用戶,到期賬戶會在登陸時,被提醒將在多少天后過期,但仍然可以使用該口令,因為Password_Grace_Time可以設定一個寬限天數,如果在Password_Grace_Time規定的寬限天數內,仍然沒有修改口令,則賬戶過期,將過期賬戶,即不能登錄數據庫。代碼如下:
a、設置所有的用戶的密碼將在3天后到期,並且寬限時間為10天(也就是給他們10天時間去修改密碼),也就是說超過了13天之后用戶還沒有修改登錄口令(密碼),用戶將無法正常登陸數據庫。
設置完之后可以正常登錄,而且沒有提醒,因為還沒有過三天
現在將系統時間設置到3天之后,再次連接登錄
出現提醒:提示當前用戶,它的登錄口令將在10天后過期,但是此時還是可以正常連接到數據庫
現在將系統時間設置到10天后,在進行登錄
出現提示:當前用戶的密碼已經過期,並且強制使用戶修改密碼,而且登錄失敗。
12、Password_Rescue_Time和Password_Rescue_Max
13、password_verify_function
使用系統口令校驗函數verify_function, 改成校驗函數后實現以下口令規則:
口令不能少於4個字符
口令不能與用戶名相同
口令至少包含一個字符, 一個數字和一個特殊字符($, _, #, !等)