oracle 三个口令管理,Oracle学习笔记(12)口令和资源管理
口令和資源管理
1、Profiles: 概要文件,包含一些對口令和資源限制的一個命名的集合。通過CREATE USER 或 ALTER USER 命令來指定用戶。它可以是enabled 或 disabled。可以參考default profile(默認,資源和口令沒有做任何限定)。
sql>create user test
identified by test; //用戶和口令都是test
2、口令管理:Account locking >Password history >Password expiration and aging 口令生命周期和過期時間>Password verification 設定口令的復雜性(符號等)>用戶
口令限制是一直保持的。使用 CREATE USER or Lock,unlock ,expire accounts 這些命令
sql> alter user test account lock;?//帳號鎖定
sql>alter user test account unlock; //帳號解鎖
sql>alter user test password expire; //口令到期
(1)口令帳號鎖定:FAILED_LOGIN_ATTEMPTS 在帳號被鎖之前登錄嘗試的失敗次數 ,PASSWORD_LOCK_TIME 在嘗試失敗登錄達到一定的次數后帳號被鎖定的時間(單位:1天),超過這個時間將自動解鎖。
sql>create profile profile1 limit
password_lock_time 1/1440
failed_login_attempts 3;?//配置文件profile1已創建
sql>alter user kong
profile profile1;?//將用戶kong使用配置文件profile1
sql>conn kong/kkk?//ERROR
sql>conn kong/kxf?//ERROR
sql>conn kong/kkk?//ERROR
sql>conn kong/111?//the account is locked 帳號已被鎖定(登錄失敗3次后帳號自動鎖定)
sql>alter profile profile1 limit
password_lock_time 1/1440;?//表示1分鐘后鎖定的帳號將自動解鎖(1/60*1/24)
sql>conn kong/kxf;
(2)口令生存周期和失效后允許改變的時間:PASSWORD_LIFE_TIME 口令的生存周期(口令經過多少天后會提示到期)/ PASSWORD_GRACE_TIME 失效后鎖定,即設定幾天后鎖定。
sql>alter profile profile1 limit
password_life_time 2?//口令經過2天后會提示到期
password_grace_time 3;?//口令到期的3天后被鎖定,這3天內可以對口令做改變。
(3)保留口令歷史記錄: PASSWORD_REUSE_TIME?保留時間(幾天)/ PASSWORD_REUSE_MAX 保留最多重用次數(幾次)
注意:PASSWORD_REUSE_TIME 和PASSWORD_REUSE_MAX?是復式的,可以都指定但只有一個生效)
sql> alter profile profile1 limit
password_reuse_time 10?//口令保留10天
password_reuse_max 3;?//口令最多重用3次
(4)啟用口令復雜性函數:PASSWORD_VERIFY_FUNCTION(PL/SQL函數在口令被設定前做一個口令復雜性檢查)
滿足條件:函數必須建立在SYS 作為owner下,Boolean函數返回的值是個boolean值。函數中三個參數必須是輸入參數(用戶ID,新口令,舊口令),并且是VARCHAR2類型和30個字符。
function_name(userid_parameter IN VARCHAR2(30),password_parameter IN VARCHAR2(30),old_password_paramemter IN VARCHAR2(30)) RETURN BOOLEAN
Oracle給了一個默認的口令驗證函數:VERIFY_FUNCTION()
步驟:conn sys 連接 >?run一個腳本:utlpwdmg.sql ORACLE會自動產生一個VERIFY_FUNCTION()函數,同時修改DEFAULT profile概要文件。
要求如下:
a.口令最小長度是4個字節;
b.口令不能和用戶名相同;
c.口令至少有一個字母,一個數字和一個特殊符號。
d.口令改變時新口令必須和舊口令保證有三個符號以上的差異。sql>conn sys/admin1 as sysdba
sql>start d:\oracle\ora90\rdbms\admin\utlpwdmg.sql //函數已經創建,同時DEFAULT profile已經更新
sql>alter user kong profile default; //用戶已更改為默認的口令文件
sql>alter user kong identified by kong_002; //口令已修改,新口令不能和舊口令相同
sql>alter user kong identified by kxf_001;?//重新改回kxf_001.
另一個窗口:
sql>conn kong/kxf_001
sql>password?//修改新口令:kong_002
(5)創建Profile:口令文件的設定CREATE PROFILE grace_5 LIMIT
FAILED_LOGIN_ATTEMPTS 3
PASSWORD_LOCK_TIME UNLIMITED
PASSWORD_LIFE_TIME 30
PASSWORD_REISE_TIME 30
PASSWORD_VERIFY_FUNCTION verify_function
PASSWORD_GRACE_TIME 5;
sql>alter profile profile1 limit
password_verify_function verify_function;?//配置文件已經修改。
(6)改變Profile:口令文件的設定
刪除口令文件:
DROP PROFILE developer_prof;
DROP PROFILE developer_prof CASCADE;
sql>alter user kong
profile profile1;
sql>drop profile profile1; //配置文件profile1指定了用戶,不能沒有casecade而刪除
sql>drop profile profile1
cascade;?//profile的刪除對當前用戶session不起作用。只是在以后的session中才會有效。
3、資源的管理:session級,call級別或者兩個都生效(默認default不生效)。
限制可以被定位在profiles中使用CREATE PROFILE 命令。
要使資源限制生效方法:RESOURCE_LIMIT 初始化參數(靜態改變)、ALTER SYSTEM 動態改變命令
ALTER SYSTEM SET resource_limit=TRUE;
例如:并行會話數 設定為2個用戶 (默認disabled)
sql>conn kong/kxf_001?//已連接
在另一個窗口:
sql>conn kong/kxf_001?//已連接
第三個窗口:
sql>conn kong/kxf_001?//已連接
如果想要并行會話數起作用,那么需要用到resource_limit=true;sql>alter system set resource_limit=true;
sql>conn kong/kxf_001?//exceeded simultaneous SESSIONS_PER_USER limit 已經超過每個用戶并行session限制
【注意】如果將并行會話數設置為4,那么繼續conn kong/kxf_001又可以連接了。
(1)設定資源限制在Session級別:
CPU_PER_SESSION?CPU/會話——每個session可以指定多少CPU (單位:1/100 s)
SESSIONS_PER_USER?每個用戶可以開多少session
CONNECT_TIME?連接時間——連接多久退出去 (單位:min)
IDLE_TIME?空閑時間——用戶非活動檢測時間,多長時間沒有做動作就自動斷開(單位:min)
LOGICAL_READS_PER_SESSION?每個Session讀取多少數據塊(物理和邏輯讀)
PRIVATE_SGA?每個用戶占用多少內存區域(單位:bytes)
sql>create profile profile1 limit
cpu_per_session 10000?;?//100秒
connect_time 60;?//連接時間60分鐘
idle_time 5;?//指定空閑時間為5分鐘
sql>alter user kong
profile profile1;
另一個窗口:
sql>conn kong/kxf_001
sql>select * from authors;
sql>set wrap off
sql>set linesize 1000
sql>run
等待5分鐘后繼續操作。。。
sql>select * from authors ;// 超出了最大的空閑時間,自動斷開了連接
(2)設定資源限制CALL級別:
CPU_PER_CALL 每一個調用可以占用多少CPU時間(1/100 s)
LOGICAL_READS_PER_CALL 每一個調用可以讀多少數據塊(bytes)
sql>alter profile profile1 limit
cpu_per_call 1000 ; //占用10s
logical_reads_per_call 10; //每個調用只能讀10塊。
創建Profile做資源限定:
CREATE PROFILE developer_prof LIMIT
SESSIONS_PER_USER 2
CPU_PER_SESSION 10000
IDLE_TIME 60
CONNECT_TIME 480;
4、管理資源使用Database Resource Manager 數據庫資源管理器:
提供Oracle服務器更多的控制來體現資源管理的決策:資源使用者組、資源計劃、資源分配方法、資源計劃調度等等信息。如果不通過圖形界面完成,可以使用DBMS_RESOURCE_MANAGER package 來創建和管理這些元素。
要求使用ADMINISTER_RESOURCE_MANAGER 權限。
sql>desc dbms_resource_manager
5、獲取口令和資源限制的信息:DBA_USERS / DBA_PROFILESsql>desc dba_users;?//查詢當前用戶的所有信息
sql>select username,account_stauts from dba_users; //發現test用戶是expire狀態
sql>alter user test
account lock;?//此時test用戶狀態:expired&locked
sql>desc dba_profiles?//profile、resource_name、resource_type、limit(繼承)
sql>select * from dba_profiles where profile='profile1';
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的oracle 三个口令管理,Oracle学习笔记(12)口令和资源管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 易校园如何更换手机号码
- 下一篇: 四星圣遗物在哪刷