




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、使用Oracle的PROFILE對用戶資源限制和密碼限制的研究與探索1.用戶創(chuàng)建語句 PROFILE選項“引發(fā)的血案”如果大家細心的話,在創(chuàng)建用戶的語法中有這么一個選項“PROFILE profile”。下面是 Oracle 11gR2官方文檔中關(guān)于創(chuàng)建用戶的語法描述(較之 10g的文檔可讀性加強了,當然功能也同樣有所增加):CREATE USER userIDENTIFIED BY password EXTERNALLY AS 'c
2、ertificate_DN' AS 'kerberos_principal_name' GLOBALLY AS ' directory_DN ' DEFAULT TABLESPACE tablespaceTEMPORARY TABLESPACE tablespace tablespace_group_name
3、QUOTA size_clause UNLIMITED ON tablespace .PROFILE profilePASSWORD EXPIREACCOUNT LOCK UNLOCK DEFAULT TABLESPACE tablespaceTEMPORARY TABLESPACE tablespace tablespace_group_name QUOTA
4、60;size_clause UNLIMITED ON tablespace .PROFILE profilePASSWORD EXPIREACCOUNT LOCK UNLOCK ENABLE EDITIONS. 2.提問:PROFILE選項是做什么用的呢?回答:簡要的說,PROFILE在Oracle數(shù)據(jù)庫對 數(shù)據(jù)庫用戶能夠使用的資源做進一步的限制的一種手段,如對連接到某個用戶的session或 sql所能使用的CPU資源進行控制,又如控制Oracle用戶的密碼
5、 管理策略等等3.查看系統(tǒng)的默認PROFILE1)通過dba_profiles視圖查看一下系統(tǒng)中默認都有哪些PROFILE數(shù)據(jù)庫創(chuàng)建以后,系統(tǒng)中只會存在一個名為DEFAULT的默認PROFILE,在用戶創(chuàng)建之后,如果不做特殊指定,每個用戶的PROFILE都會默認的使用個默認的PROFILE。sysora10g> select distinct profile from dba_profiles;PROFILE-DEFAULT2)全面查看一下這個PROFILE都包含哪些限制定義sysora10g> select *
6、 from dba_profiles;PROFILE RESOURCE_NAME RESOURCE LIMIT- - - -DEFAULT COMPOSITE_LIMIT
7、160; KERNEL UNLIMITEDDEFAULT SESSIONS_PER_USER KERNEL UNLIMITEDDE
8、FAULT CPU_PER_SESSION KERNEL UNLIMITEDDEFAULT CPU_PER_CALL
9、 KERNEL UNLIMITEDDEFAULT LOGICAL_READS_PER_SESSION KERNEL UNLIMITEDDEFAULT LOGICAL_READS_PER_CALL
10、; KERNEL UNLIMITEDDEFAULT IDLE_TIME KERNEL UNLIMITEDDEFAULT
11、 CONNECT_TIME KERNEL UNLIMITEDDEFAULT PRIVATE_SGA
12、60; KERNEL UNLIMITEDDEFAULT FAILED_LOGIN_ATTEMPTS PASSWORD 10DEFAULT PASSWORD_LIFE_TIME
13、60; PASSWORD UNLIMITEDDEFAULT PASSWORD_REUSE_TIME PASSWORD UNLIMITEDDEFAULT PASSWORD
14、_REUSE_MAX PASSWORD UNLIMITEDDEFAULT PASSWORD_VERIFY_FUNCTION PASSWORD NULLDEFAULT PASSWORD_LOCK_TIME&
15、#160; PASSWORD UNLIMITEDDEFAULT PASSWORD_GRACE_TIME PASSWORD UNLIMITED16 rows selected.3)結(jié)論
16、通過上面的查看,可以得到這個系統(tǒng)默認的PROFILE “DEFAULT”的配置信息只對密碼的錯誤嘗試次數(shù)做了限制(最多可以錯誤輸錯10次密碼),如果我們啟用了PROFILE(下面有介紹如何啟用和停止PROFILE),默認的限制只有這些。如果想要改變限制條件,有兩種方法:第一種方法是可以對這個默認的PROFILE做個性化的調(diào)整;第二種方法是再重新定制一個新的PROFILE滿足新的需求。4.對創(chuàng)建PROFILE的標準語法做一下“解剖麻雀”(更多細節(jié)可以參考Oracle的官方文檔)1)創(chuàng)建PROFILE的語法如下:CREATE PROFILE profile
17、; LIMIT resource_parameters 對資源的限制 | password_parameters 對密碼的限制.;2)對數(shù)據(jù)庫資源做限制時,下面是全部可用的參數(shù): SESSIONS_PER_USER 每個用戶名所允許的并行會話數(shù) | CPU_PER_SESSION 一個會話一共可以使用的CPU時間,單位是百分之一秒 | CPU_PER_CALL 一次SQL調(diào)用(解析、執(zhí)行和獲取
18、)允許使用的CPU時間 | CONNECT_TIME 限制會話連接時間,單位是分鐘 | IDLE_TIME 允許空閑會話的時間,單位是分鐘 | LOGICAL_READS_PER_SESSION 限制會話對數(shù)據(jù)塊的讀取,單位是塊 | LOGICAL_READS_PER_CALL 限制SQL調(diào)用對數(shù)據(jù)塊的讀取,單位是塊 | COMPOSITE_LI
19、MIT “組合打法” integer | UNLIMITED | DEFAULT | PRIVATE_SGA 限制會話在SGA中Shared Pool中私有空間的分配 size_clause | UNLIMITED | DEFAULT 3)對密碼做限制時,下面是全部可用的參數(shù): FAILED_LOGIN_ATTEMPTS 帳戶被鎖定之前可以錯誤嘗試的次數(shù) | PASSWORD_LIFE_TIME
20、; 密碼可以被使用的天數(shù),單位是天,默認值180天 | PASSWORD_REUSE_TIME 密碼可重用的間隔時間(結(jié)合PASSWORD_REUSE_MAX) | PASSWORD_REUSE_MAX 密碼的最大改變次數(shù)(結(jié)合PASSWORD_REUSE_TIME) | PASSWORD_LOCK_TIME 超過錯誤嘗試次數(shù)后,用戶被鎖定的天數(shù),默認1天 | PASSWORD_GRACE_TIME 當密碼過期之后還
21、有多少天可以使用原密碼 expr | UNLIMITED | DEFAULT | PASSWORD_VERIFY_FUNCTION function | NULL | DEFAULT 5.OK,語法已經(jīng)了然于胸,那么我們來實際創(chuàng)建一個PROFILE(這里的名字我們稱其為:sec_profile),在感性認識的同時一同探索一下在這個過程中會遇到的一些有趣現(xiàn)象。1)嘗試創(chuàng)建一個混合型的PROFILE(包含 資源限制和密碼限制)sysora10g> CRE
22、ATE PROFILE sec_profile LIMIT2 SESSIONS_PER_USER UNLIMITED3 CPU_PER_SESSION UNLIMITED4
23、; CPU_PER_CALL 60005 CONNECT_TIME 606 LOGICAL_R
24、EADS_PER_SESSION DEFAULT7 LOGICAL_READS_PER_CALL 60008 COMPOSITE_LIMIT 60000009 PRIVATE_SGA
25、; 66K10 FAILED_LOGIN_ATTEMPTS 611 PASSWORD_LIFE_TIME 6012
26、160; PASSWORD_REUSE_TIME 6013 PASSWORD_REUSE_MAX 514 PASSWORD_LOCK_TIME 1/2415
27、 PASSWORD_GRACE_TIME 1016 PASSWORD_VERIFY_FUNCTION verify_function17 /CREATE PROFILE sec_profile LIMIT*ERROR at line 1:ORA-07443: fu
28、nction VERIFY_FUNCTION not found2)報錯原因為什么會報錯?錯誤提示很清楚,VERIFY_FUNCTION這個函數(shù)不存在。既然知道不存在,那我們?nèi)绾蝿?chuàng)建它呢?回答:VERIFY_FUNCTION函數(shù)是通過utlpwdmg.sql腳本創(chuàng)建的,該腳本所在的目錄是$ORACLE_HOME/rdbms/admin/3)創(chuàng)建密碼復(fù)雜性檢驗函數(shù)VERIFY_FUNCTION我們使用utlpwdmg.sql腳本創(chuàng)建以下這個VERIFY_FUNCTION密碼復(fù)雜度校驗函數(shù)sysora10g> ?/rdbms/admin/utlpwdm
29、g.sqlFunction created.Profile altered.4)utlpwdmg.sql腳本中的小秘密細心的您在執(zhí)行utlpwdmg.sql腳本的過程中一定發(fā)現(xiàn)了有一個“Profile altered”的提示,難道這個腳本修改了某個PROFILE信息么?正如您所料,它修改了系統(tǒng)的默認PROFILE “DEFAULT”,再次查看一下現(xiàn)在的DEFAULT的定義信息:sysora10g> select * from dba_profiles;PROFILE RESOURCE
30、_NAME RESOURCE LIMIT- - - -DEFAULT COMPOSITE_LIMIT
31、0; KERNEL UNLIMITEDDEFAULT SESSIONS_PER_USER KERNEL UNLIMITEDDEFAULT CPU_PER_SESSION
32、 KERNEL UNLIMITEDDEFAULT CPU_PER_CALL KERNEL
33、160; UNLIMITEDDEFAULT LOGICAL_READS_PER_SESSION KERNEL UNLIMITEDDEFAULT LOGICAL_READS_PER_CALL KERNEL U
34、NLIMITEDDEFAULT IDLE_TIME KERNEL UNLIMITEDDEFAULT CONNECT_TIME
35、160; KERNEL UNLIMITEDDEFAULT PRIVATE_SGA
36、;KERNEL UNLIMITEDDEFAULT FAILED_LOGIN_ATTEMPTS PASSWORD 3DEFAULT PASSWORD_LIFE_TIME
37、 PASSWORD 60DEFAULT PASSWORD_REUSE_TIME PASSWORD 1800DEFAULT PASSWORD_REUSE_MAX
38、; PASSWORD UNLIMITEDDEFAULT PASSWORD_VERIFY_FUNCTION PASSWORD VERIFY_FUNCTIONDEFAULT PASSWORD_LOCK_TIME
39、; PASSWORD .0006DEFAULT PASSWORD_GRACE_TIME PASSWORD 1016 rows selected.與系統(tǒng)創(chuàng)建時的DEFAULT PROFILE相比較,之前只有10次密碼輸入錯誤的限制,執(zhí)行完成這個函數(shù)創(chuàng)建之后,我們發(fā)現(xiàn)系統(tǒng)默認的PROFILE已經(jīng)對系統(tǒng)有了一個非常嚴格
40、的約束。也就是說現(xiàn)在系統(tǒng)上的每一個用戶在默認情況下都多了這些密碼方面的限制。5)驗證一下新默認的PROFILE “DEFAULT”關(guān)于錯誤密碼輸入次數(shù)的限制我們模擬一下錯誤輸錯密碼三次后的效果,可以看到,在第四次輸入后,sec用戶被鎖定了。sysora10g> conn sec/aERROR:ORA-01017: invalid username/password; logon deniedWarning: You are no longer connected to&
41、#160;ORACLE.sysora10g> conn sec/aERROR:ORA-01017: invalid username/password; logon deniedsysora10g> conn sec/aERROR:ORA-01017: invalid username/password; logon deniedsysora10g> conn sec/aERROR:ORA-28000: the acc
42、ount is locked6)使用dba_users視圖比較一下用戶的前后狀態(tài)用戶sec已經(jīng)因錯誤密碼輸入次數(shù)超過3此導致用戶被鎖定了,進一步比較一下用戶的狀態(tài)。sysora10g> col USERNAME for a10sysora10g> col ACCOUNT_STATUS for a20sysora10g> col PROFILE for a10sysora10g> select USERNAME,A
43、CCOUNT_STATUS,LOCK_DATE,EXPIRY_DATE from dba_users where username = 'SEC'USERNAME ACCOUNT_STATUS LOCK_DATE EXPIRY_DATE- - -
44、-SEC OPENsysora10g> select USERNAME,ACCOUNT_STATUS,LOCK_DATE,EXPIRY_DATE from dba_users where username = 'SEC'USERNAME ACCOUNT_STATUS LOCK_DATE&
45、#160; EXPIRY_DATE- - - -SEC LOCKED(TIMED) 2009-10-11 16:05:03 2009-12-09 08:46:367)既然默認的PROFILE發(fā)生了變化,那么就會面臨一個實際問題,如何恢
46、復(fù)成原始狀態(tài)呢?這里給出一個比較簡單的方法,就是使用ALTER PROFILE命令修改成原來的模樣sysora10g> ALTER PROFILE DEFAULT LIMIT2 COMPOSITE_LIMIT UNLIMITED3 SESSIONS_PER_USER
47、60; UNLIMITED4 CPU_PER_SESSION UNLIMITED5 CPU_PER_CALL UNLIMITED6
48、 LOGICAL_READS_PER_SESSION UNLIMITED7 LOGICAL_READS_PER_CALL UNLIMITED8 IDLE_TIME UN
49、LIMITED9 CONNECT_TIME UNLIMITED10 PRIVATE_SGA UNLIMITED11 &
50、#160;FAILED_LOGIN_ATTEMPTS 1012 PASSWORD_LIFE_TIME UNLIMITED13 PASSWORD_REUSE_TIME UNLIMITED14 P
51、ASSWORD_REUSE_MAX UNLIMITED15 PASSWORD_VERIFY_FUNCTION NULL16 PASSWORD_LOCK_TIME UNLIMITED17 PASSWORD_GRACE_
52、TIME UNLIMITED18 /Profile altered.8)最后我們重新創(chuàng)建一下這個實驗PROFILE:sec_profile,可以預(yù)測,這次一定會成功滴sysora10g> CREATE PROFILE sec_profile LIMIT2 SESSIONS_PER_USER
53、0; UNLIMITED3 CPU_PER_SESSION UNLIMITED4 CPU_PER_CALL 60005
54、 CONNECT_TIME 606 LOGICAL_READS_PER_SESSION DEFAULT7 LOGICAL_READS_PER_CALL 60008
55、60; COMPOSITE_LIMIT 60000009 PRIVATE_SGA 66K10 FAILED
56、_LOGIN_ATTEMPTS 611 PASSWORD_LIFE_TIME 6012 PASSWORD_REUSE_TIME 6013 PASSWORD_
57、REUSE_MAX 514 PASSWORD_LOCK_TIME 1/2415 PASSWORD_GRACE_TIME 1016 &
58、#160;PASSWORD_VERIFY_FUNCTION verify_function17 /Profile created.創(chuàng)建成功鳥在這個 實驗中,我們使用了PROFILE幾乎所有的參數(shù),惟一沒有包含的參數(shù)是IDLE_TIME,目的僅僅是為了說明一個細節(jié):如果該PROFILE被授權(quán)給用戶后,這個被省略的IDLE_TIME參數(shù)將繼承默認PROFILE “DEFALT”中的定義。對上面我們創(chuàng)建的PROFILE逐行做一下詮釋,以便加深理解:第 2行:對用戶的并發(fā)連接會話數(shù)不做限制第 3行:對于連接到用戶的每一個session的
59、CPU時間的使用不做限制第 4行:一次調(diào)用消耗的CPU時間不能超過60秒(不超過一分鐘)第 5行:連接到用戶的每次會話時間不能超過60分鐘(不超過一個小時)第 6行:一次會話使用的物理讀與邏輯讀數(shù)據(jù)塊總量與DEFAULT profile中定義保持一致第 7行:一次調(diào)用使用的物理讀與邏輯讀數(shù)據(jù)塊總量不超過6000個數(shù)據(jù)塊第 8行:一次會話總的資源消耗不超過6000000個服務(wù)單元(service units)第 9行:一次會話在SGA中不能分配超過66K的空間第10行:帳戶被鎖定之前允許6次的錯誤嘗試第11行:超過此生命周期后密碼作廢第12行:密碼重用時間60天第13行:密碼重用之前密碼需要完成
60、5次改變第14行:超過錯誤嘗試次數(shù)后,用戶將被鎖定1小時第15行:當密碼過期之后原密碼還可以使用10天第16行:使用密碼復(fù)雜度校驗函數(shù)verify_function對密碼做檢查再單獨深入解釋一下第12行和13行組合搭配之后的含義:也就是說只有完成了5次的密碼修改后并且已經(jīng)超過60天后,之前的密碼才能夠再一次被使用。9)通過dba_profiles視圖再一次查看一下此時系統(tǒng)中存在的PROFILE的信息sysora10g> col PROFILE for a12sysora10g> col RESOURCE_NAME
61、;for a25sysora10g> col LIMIT for a15sysora10g> select * from dba_profiles order by 1,2;PROFILE RESOURCE_NAME RESOURCE
62、;LIMIT- - - -DEFAULT COMPOSITE_LIMIT KERNEL UNLIMITEDDEFAULT CONNECT_TIME
63、 KERNEL UNLIMITEDDEFAULT CPU_PER_CALL KERNEL UNLIMITEDDEFAULT CPU_PER_SESSION &
64、#160; KERNEL UNLIMITEDDEFAULT FAILED_LOGIN_ATTEMPTS PASSWORD 3DEFAULT IDLE_TIME
65、; KERNEL UNLIMITEDDEFAULT LOGICAL_READS_PER_CALL KERNEL UNLIMITEDDEFAULT LOGICAL_READS_PER_SESSION KERNEL
66、0;UNLIMITEDDEFAULT PASSWORD_GRACE_TIME PASSWORD 10DEFAULT PASSWORD_LIFE_TIME PASSWORD 60DEFAULT P
67、ASSWORD_LOCK_TIME PASSWORD .0006DEFAULT PASSWORD_REUSE_MAX PASSWORD UNLIMITEDDEFAULT PASSWORD_REUSE_TIME
68、0; PASSWORD 1800DEFAULT PASSWORD_VERIFY_FUNCTION PASSWORD VERIFY_FUNCTIONDEFAULT PRIVATE_SGA KERNEL
69、0; UNLIMITEDDEFAULT SESSIONS_PER_USER KERNEL UNLIMITEDSEC_PROFILE COMPOSITE_LIMIT KERNEL 50
70、00000SEC_PROFILE CONNECT_TIME KERNEL 45SEC_PROFILE CPU_PER_CALL KERNEL 3000SEC
71、_PROFILE CPU_PER_SESSION KERNEL UNLIMITEDSEC_PROFILE FAILED_LOGIN_ATTEMPTS PASSWORD 5SEC_PROFILE IDLE_TIME
72、60; KERNEL DEFAULTSEC_PROFILE LOGICAL_READS_PER_CALL KERNEL 1000SEC_PROFILE LOGICAL_READS_PER_SESSION KERNEL DEFAULTSEC_PROFILE PASSWOR
73、D_GRACE_TIME PASSWORD 10SEC_PROFILE PASSWORD_LIFE_TIME PASSWORD 60SEC_PROFILE PASSWORD_LOCK_TIME PASSWORD .0416SEC_PROFILE
74、 PASSWORD_REUSE_MAX PASSWORD 5SEC_PROFILE PASSWORD_REUSE_TIME PASSWORD 60SEC_PROFILE PASSWORD_VERIFY_FUNCTION PASSWORD VERIFY_FUNCTIONSEC_PROFILE PR
75、IVATE_SGA KERNEL 15360SEC_PROFILE SESSIONS_PER_USER KERNEL UNLIMITED32 rows selected.10)刪除PROFILE既然有創(chuàng)建,
76、就一定對應(yīng)著刪除,刪除方法很簡單,語法如下:DROP PROFILE profile CASCADE 如果創(chuàng)建的PROFILE已經(jīng)授權(quán)給了具體的用戶,則需要使用CASCADE選項級聯(lián)的收回相應(yīng)的限制信息,在收回這些限制信息之后將會以系統(tǒng)默認的PROFILE對該用戶進行限制。刪除示例如下:sysora10g> drop profile SEC_PROFILE cascade;Profile dropped.如果該PROFILE已經(jīng)授權(quán)給具體的用戶,使用不帶有cascade選項的
77、刪除命令將得到如下的報錯信息:sysora10g> drop profile SEC_PROFILE;drop profile SEC_PROFILE*ERROR at line 1:ORA-02382: profile SEC_PROFILE has users assigned, cannot drop without CASCADE6.關(guān)于PROFILE內(nèi)容何時生效的一點注意事項這里討論需要談到一個系統(tǒng)參數(shù),它就是
78、resource_limit。如果要開啟“資源限制”的話,這個參數(shù)必須是“TRUE”的狀態(tài)sysora10g> show parameter resource_limitNAME TYPE VALUE- -
79、160;-resource_limit boolean FALSE這里有一個小細節(jié)不得不提:之所以稱這個參數(shù)為resource_limit(資源限制)而沒有稱作“profile_limit”,是因為這個參數(shù)只對PROFILE中的資源限制部分起作用,如果是默認的FALSE狀態(tài),表示PROFILE定義中的資源限制條件不起作用,只有該參數(shù)為TRUE時,資源限制的定義才生效。不過,關(guān)于PROFILE中密碼限制的條件則
80、與這個參數(shù)無關(guān),無論這個參數(shù)設(shè)置為什么值,有關(guān)密碼限制的條件都會默認生效,從這個細節(jié)上可以看出來Oracle對用戶密碼的重視程度。因此關(guān)于PROFILE的生效情況結(jié)論是:1)用戶所有擁有的PROFILE中有關(guān)密碼的限制永遠生效,不受限制。2)用戶所有擁有的PROFILE中有關(guān)資源的限制與resource_limit參數(shù)的設(shè)置有關(guān),當為TRUE時生效,當為FALSE時(默認值是FALSE)無效。7.一切都OK了,最后我們來演示一下將新創(chuàng)建的PROFILE sec_profile指定給具體用戶sec的操作sysora10g> alter user sec
81、0;profile sec_profile;User altered.sysora10g> select USERNAME,PROFILE from dba_users where USERNAME = 'SEC'USERNAME PROFILE- -SEC SEC_PROFILE8.【附】密碼驗證函數(shù)VERIFY_FUNCTION的創(chuàng)建
82、腳本內(nèi)容utlpwdmg.sql,供參考。ora10gsecDB /home/oracle$ cat $ORACLE_HOME/rdbms/admin/utlpwdmg.sqlRemRem $Header: utlpwdmg.sql 31-aug-2000.11:00:47 nireland Exp $RemRem utlpwdmg.sqlRemRem Copyright (c) Oracle Corporation 1996,
83、60;2000. All Rights Reserved.RemRem NAMERem utlpwdmg.sql - script. for Default Password Resource LimitsRemRem DESCRIPTIONRem This
84、;is a script. for enabling the password management featuresRem by setting the default password resource limits.RemRem NOTESRem This
85、file contains a function for minimum checking of passwordRem complexity. This is more of a sample function that the customerRem can use
86、 to develop the function for actual complexity checks that theRem customer wants to make on the new password.RemRem MODIFIED (MM/DD/YY)Rem
87、160; nireland 08/31/00 - Improve check for username=password. #1390553Rem nireland 06/28/00 - Fix null old password test. #1341892Rem
88、0; asurpur 04/17/97 - Fix for bug479763Rem asurpur 12/12/96 - Changing the name of password_verify_functionRem asurpur
89、; 05/30/96 - New script. for default password managementRem asurpur 05/30/96 - CreatedRem- This script. sets the default password resource parameters- Th
90、is script. needs to be run to enable the password features.- However the default resource parameters can be changed based- on the need.- A default password complexity
91、0;function is also provided.- This function makes the minimum complexity checks like- the minimum length of the password, password not same as the- username, etc. The use
92、r may enhance this function according to- the need.- This function must be created in SYS schema.- connect sys/<password> as sysdba before running the scriptCREATE OR
93、60;REPLACE FUNCTION verify_function(username varchar2,password varchar2,old_password varchar2)RETURN boolean ISn boolean;m integer;differ integer;isdigit boolean;ischar boolean;ispunct boolean;digitarray varchar2(20);punctar
94、ray varchar2(25);chararray varchar2(52);BEGINdigitarray:= '0123456789'chararray:= 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'punctarray:='!"#$%&()*+,-/:;<=>?_'- Check if the password is same as
95、160;the usernameIF NLS_LOWER(password) = NLS_LOWER(username) THENraise_application_error(-20001, 'Password same as or similar to user');END IF;- Check for the minimum length of the passwo
96、rdIF length(password) < 4 THENraise_application_error(-20002, 'Password length less than 4');END IF;- Check if the password is too simple. A dictionary of words may be-
97、maintained and a check may be made so as not to allow the words- that are too simple for the password.IF NLS_LOWER(password) IN ('welcome', 'database', 'ac
98、count', 'user', 'password', 'oracle', 'computer', 'abcd') THENraise_application_error(-20002, 'Password too simple');END IF;- Check if the password contains at lea
99、st one letter, one digit and one- punctuation mark.- 1. Check for the digitisdigit:=FALSE;m := length(password);FOR i IN 1.10 LOOPFOR j IN 1.m LOOPIF substr(password,j,1) =
100、60;substr(digitarray,i,1) THENisdigit:=TRUE;GOTO findchar;END IF;END LOOP;END LOOP;IF isdigit = FALSE THENraise_application_error(-20003, 'Password should contain at least one digit, one character and&
101、#160;one punctuation');END IF;- 2. Check for the character<<findchar>>ischar:=FALSE;FOR i IN 1.length(chararray) LOOPFOR j IN 1.m LOOPIF substr(password,j,1) = substr(chararray,i,1) THENisc
102、har:=TRUE;GOTO findpunct;END IF;END LOOP;END LOOP;IF ischar = FALSE THENraise_application_error(-20003, 'Password should contain at least one digit, one character and one punctuation');END IF;- 3. Check for the punctuation<<findp
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 山東華宇工學院《普通生物學動物部分》2023-2024學年第二學期期末試卷
- 山東華宇工學院《城市公交規(guī)劃與運營管理》2023-2024學年第二學期期末試卷
- 新星職業(yè)技術(shù)學院《燃燒學》2023-2024學年第二學期期末試卷
- 江西科技職業(yè)學院《磁性材料與器件》2023-2024學年第二學期期末試卷
- 南京交通職業(yè)技術(shù)學院《城市能源系統(tǒng)》2023-2024學年第二學期期末試卷
- 南通師范高等??茖W?!哆b感概論實驗》2023-2024學年第一學期期末試卷
- 山東省蘭陵縣重點達標名校2025屆中考模擬最后十套:化學試題(三)考前提分仿真卷含解析
- 公司計件工資勞動合同書
- 二零二五抖音發(fā)布協(xié)議書模板
- 二零二五版月子中心月嫂服務(wù)合同書
- 2025年傳染病護理
- 人教版(2024)七年級下冊地理期中綜合調(diào)研測試卷(含答案解析)
- 人教版三年級下冊數(shù)學第五單元《面積》測試卷(含答案)
- 大部分分校:地域文化形考任務(wù)二-國開(CQ)-國開期末復(fù)習資料
- 2024年度危廢培訓完整課件
- 調(diào)查問卷設(shè)計-課件PPT
- 照金參觀學習心得
- 井下電纜著火應(yīng)急演練預(yù)案
- 小學數(shù)學 五進制
- 勞動合同續(xù)簽評估表
- 聯(lián)合利華新分銷商申請書
評論
0/150
提交評論