oracle使用者口令管理策略
1帳戶鎖定
建立一個資料庫使用者XUDB,該帳戶允許連續註冊3次,超過3次就會引起帳戶死鎖。這樣可以減少口令被猜中、窮舉的可能性.它的環境檔名為lock_account。
Create Profile Lock_account limit
Failed_Login_Attempts3 Password_Lock_Time 1;
Create User XUDB Identmed By XU520;
Profile Lock_account;
ALTER USER XUDB PROFILE Lock_aecount;
如果XUDB帳戶連續註冊3次,那麼該帳戶就會被Oracle自動鎖住,即使使用了正確的口令,也會提示出錯。
CONNECT XUDB/XU520;
Error ORA-28000 the account is locked
在建立Lock_account時,因為指定Password_Lock_Time的值為1.所以當帳戶鎖定一天之後,ORACLE會自動解鎖帳戶。另外,要對帳戶解鎖,在DBA帳戶下使用如下語句即可;
Alter User XUDB Account Unlock
2口令歷史
可以透過環境檔案Profile的資源PASSWORD_LIFE_TIME為帳戶建立一個最大的期限。如要求使用者每10天改變一次口令。
Alter Profile Limited_Profile Limit
Password_Life_Time 10;
如果口令過期,那麼必須下次註冊時修改它,一個過期帳戶和鎖定的帳戶不同,一個鎖定的帳戶會隨時間的推移自動解鎖或用由來解鎖;一個過期帳戶,ORACLE會強制改變口令,否則不允許登入。
當往往有些使用者在重新輸入新口令的時候。又使用以前的舊口令,為了防止使用者重用舊口令,強制該使用者在口令終止10天之內不能重用以前的口令。具體實現方法如下:
Alter Profile password_history Limit
Password_Life Time10 Password_Grace_Time2
Password_Reuse_Time10 Password_Reuse_Max Unlimited;
將該Profile分配給使用者才能起作用
AherUserxUDBProfile password_history;
當使用者在前十二天沒有修改口令,在第十三天登入時,0-RACLE會強制使用者改變口令,如果使用者仍然使用過去的口令,則口令修改不正確,並會有錯誤提示資訊。
ERROR:ORA-28001:the password has expired
Changing password for XUDB
New password:
Retype new password:
ERROR:ORA-28007:the password cannot be reused
3口令複雜性驗證
口令的複雜性驗證程式可用PL/SQL指令碼fUTLPWDMG.SQL)來建立自己的口令驗證程式來指定,使用OCIPasswordChangeο改變口令。
DBAs授權的PL/SQL系統呼叫必須遵循以下格式:
Routine_name(
Userid_parameter IN VARCHAR2(30),
PaSSWOrd_parameter IN VARCHAR2(30),
Old_password_parameter IN VARCHAR2(30))
RETURN BOOLEAN
在程式建立之後使用使用者的PROFILE或系統的預設PRO-FILE,將其指定為口令驗證程式:
Create/Alter PROFILE pmfile_name LIMIT
PASSWORD_VERIFY_FUNCTION routin_name
下面設計了一個程式來改進了原有口令,設定了預設口令資源限制,建立了自己的複雜性檢查程式,提供了口令複雜性最低限度的檢查。
這個口令驗證程式必須SYS所有。該預設口令複雜性驗證函式檢查以下專案:(1)口令滿足最小長度,不能少於4個字元;(2)口令至少包含一個字母、一個數字、一個特殊字元的組合要求;(3)口令不是一些常用名;(4)口令不能與使用者名稱相同,使用者可根據實際的需要修改這個函式。
該函式在SYS模式中建立,執行它之前以SYSDBA身份連線SYS。
程式如下:
CREATE OR REPLACE FUNCTION
verify_function
(username varchar2,
password varchar2)
RETURN boolean IS
n boolean;
m integer;
isdigit boolean;
ischar boolean;
ispunct boo1ean;
digitarray varehar2(25);
chararray varchar2(52);
punctarray varchar2(52);
Begin
digitarray:=‘0123456789’;
chararray:=‘abcdefghijklmnopqrstuvwxyzABCDEFGHUKLMNOPQRSTUVWXYZ’;
punctarray:=‘&0”*;<=>?_!”#$%+,-/:’;
IF password=username
THEN raise_application_error(-20001,‘Password same asuser’);
END IF
IF length(password)<4 THEN
Raise_application_error(-20002,‘Password length less than 4’);
IF NLS_LOWER(password)
IN(‘home’,‘abcd’,‘boy’,‘user’,‘password’,‘oracle’,‘dear’)THEN
Raise_application_error(-20003,‘Password should not use thecommon word’);
END IF
’
isdigit=FALSE;
m:=length(password);
FOR i IN 1..10 LOOP
FOR j IN 1..m LOOP
IF subst(password,j,1)=substr(digitarray,i,1)THEN
isdigit:=TRUE;
GOTO findchar;
END IF;
END LOOP;
END LOOP;
IF ischar=FASLE
THEN Raise_application_error(-20004,‘Password should contain at least one digit,one character and one punctuation’);
END IF;
2.4口令加密
對客戶機.把SQLNET.ORA檔案中的引數ORA_EN-CRYPT_LOGIN設定為TRUE;
對伺服器,把INIT.ORA檔案中的引數DBLINK_EN-CRYPT_LOGIN設定為TRUE;
這樣口令以加密的形式在客戶機到伺服器和伺服器到伺服器之間傳送。
另外需要強調的是資料庫系統管理員對SYS和SYSTEM兩個特殊的帳戶的保密管理,要經常更改這兩個帳戶的口令,防止被盜用。
[@more@]
建立一個資料庫使用者XUDB,該帳戶允許連續註冊3次,超過3次就會引起帳戶死鎖。這樣可以減少口令被猜中、窮舉的可能性.它的環境檔名為lock_account。
Create Profile Lock_account limit
Failed_Login_Attempts3 Password_Lock_Time 1;
Create User XUDB Identmed By XU520;
Profile Lock_account;
ALTER USER XUDB PROFILE Lock_aecount;
如果XUDB帳戶連續註冊3次,那麼該帳戶就會被Oracle自動鎖住,即使使用了正確的口令,也會提示出錯。
CONNECT XUDB/XU520;
Error ORA-28000 the account is locked
在建立Lock_account時,因為指定Password_Lock_Time的值為1.所以當帳戶鎖定一天之後,ORACLE會自動解鎖帳戶。另外,要對帳戶解鎖,在DBA帳戶下使用如下語句即可;
Alter User XUDB Account Unlock
2口令歷史
可以透過環境檔案Profile的資源PASSWORD_LIFE_TIME為帳戶建立一個最大的期限。如要求使用者每10天改變一次口令。
Alter Profile Limited_Profile Limit
Password_Life_Time 10;
如果口令過期,那麼必須下次註冊時修改它,一個過期帳戶和鎖定的帳戶不同,一個鎖定的帳戶會隨時間的推移自動解鎖或用由來解鎖;一個過期帳戶,ORACLE會強制改變口令,否則不允許登入。
當往往有些使用者在重新輸入新口令的時候。又使用以前的舊口令,為了防止使用者重用舊口令,強制該使用者在口令終止10天之內不能重用以前的口令。具體實現方法如下:
Alter Profile password_history Limit
Password_Life Time10 Password_Grace_Time2
Password_Reuse_Time10 Password_Reuse_Max Unlimited;
將該Profile分配給使用者才能起作用
AherUserxUDBProfile password_history;
當使用者在前十二天沒有修改口令,在第十三天登入時,0-RACLE會強制使用者改變口令,如果使用者仍然使用過去的口令,則口令修改不正確,並會有錯誤提示資訊。
ERROR:ORA-28001:the password has expired
Changing password for XUDB
New password:
Retype new password:
ERROR:ORA-28007:the password cannot be reused
3口令複雜性驗證
口令的複雜性驗證程式可用PL/SQL指令碼fUTLPWDMG.SQL)來建立自己的口令驗證程式來指定,使用OCIPasswordChangeο改變口令。
DBAs授權的PL/SQL系統呼叫必須遵循以下格式:
Routine_name(
Userid_parameter IN VARCHAR2(30),
PaSSWOrd_parameter IN VARCHAR2(30),
Old_password_parameter IN VARCHAR2(30))
RETURN BOOLEAN
在程式建立之後使用使用者的PROFILE或系統的預設PRO-FILE,將其指定為口令驗證程式:
Create/Alter PROFILE pmfile_name LIMIT
PASSWORD_VERIFY_FUNCTION routin_name
下面設計了一個程式來改進了原有口令,設定了預設口令資源限制,建立了自己的複雜性檢查程式,提供了口令複雜性最低限度的檢查。
這個口令驗證程式必須SYS所有。該預設口令複雜性驗證函式檢查以下專案:(1)口令滿足最小長度,不能少於4個字元;(2)口令至少包含一個字母、一個數字、一個特殊字元的組合要求;(3)口令不是一些常用名;(4)口令不能與使用者名稱相同,使用者可根據實際的需要修改這個函式。
該函式在SYS模式中建立,執行它之前以SYSDBA身份連線SYS。
程式如下:
CREATE OR REPLACE FUNCTION
verify_function
(username varchar2,
password varchar2)
RETURN boolean IS
n boolean;
m integer;
isdigit boolean;
ischar boolean;
ispunct boo1ean;
digitarray varehar2(25);
chararray varchar2(52);
punctarray varchar2(52);
Begin
digitarray:=‘0123456789’;
chararray:=‘abcdefghijklmnopqrstuvwxyzABCDEFGHUKLMNOPQRSTUVWXYZ’;
punctarray:=‘&0”*;<=>?_!”#$%+,-/:’;
IF password=username
THEN raise_application_error(-20001,‘Password same asuser’);
END IF
IF length(password)<4 THEN
Raise_application_error(-20002,‘Password length less than 4’);
IF NLS_LOWER(password)
IN(‘home’,‘abcd’,‘boy’,‘user’,‘password’,‘oracle’,‘dear’)THEN
Raise_application_error(-20003,‘Password should not use thecommon word’);
END IF
’
isdigit=FALSE;
m:=length(password);
FOR i IN 1..10 LOOP
FOR j IN 1..m LOOP
IF subst(password,j,1)=substr(digitarray,i,1)THEN
isdigit:=TRUE;
GOTO findchar;
END IF;
END LOOP;
END LOOP;
IF ischar=FASLE
THEN Raise_application_error(-20004,‘Password should contain at least one digit,one character and one punctuation’);
END IF;
2.4口令加密
對客戶機.把SQLNET.ORA檔案中的引數ORA_EN-CRYPT_LOGIN設定為TRUE;
對伺服器,把INIT.ORA檔案中的引數DBLINK_EN-CRYPT_LOGIN設定為TRUE;
這樣口令以加密的形式在客戶機到伺服器和伺服器到伺服器之間傳送。
另外需要強調的是資料庫系統管理員對SYS和SYSTEM兩個特殊的帳戶的保密管理,要經常更改這兩個帳戶的口令,防止被盜用。
[@more@]
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11754099/viewspace-1006207/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle的口令管理Oracle
- 2 Day DBA-管理Oracle例項-給使用者帳戶指定表空間配額-關於口令策略Oracle
- 2 Day DBA-管理Oracle例項-給使用者帳戶指定表空間配額-修改預設口令策略Oracle
- Oracle 10g 11g密碼策略 使用者口令 大小寫敏感 說明Oracle 10g密碼
- Oracle 11g使用者口令過期Oracle
- oracle使用者口令中帶@符號問題Oracle符號
- 破解Oracle一般使用者的口令(轉)Oracle
- 【ORACLE】oracle 使用者(sysdba)遠端登入和口令認證Oracle
- Linux設定口令複雜度和口令定期更換策略Linux複雜度
- Oracle ----口令檔案Oracle
- windows本地破解使用者口令Windows
- 2 Day DBA-管理Oracle例項-給使用者帳戶指定表空間配額-使使用者口令過期Oracle
- ORACLE使用者管理Oracle
- oracle 使用者管理Oracle
- 淺談oracle 使用者(sysdba)遠端登入和口令認證Oracle
- Oracle 建立口令檔案 orapwdOracle
- oracle 11g 角色口令Oracle
- 【使用者管理】oracle使用者、角色、許可權管理Oracle
- Oracle OS 認證, 口令檔案Oracle
- [20180316]改變oracle使用者口令時限.txtOracle
- Oracle中的鑑權口令認證Oracle
- WebLogic中修改系統管理員口令Web
- Windows口令管理的4個誤區(轉)Windows
- 用DOS命令破除UNIX管理員口令 (轉)
- 用DOS命令破除 UNIX 管理員口令(轉)
- Oracle使用者、授權、角色管理Oracle
- Oracle使用者許可權管理Oracle
- 使用者備份策略和使用者密碼策略密碼
- SOA策略管理
- [20171213]john破解oracle口令.txtOracle
- 檢索oracle中口令:第一種方法Oracle
- 檢索oracle中口令:第二種方法Oracle
- 為oracle資料庫建立口令檔案Oracle資料庫
- 加固Oracle安全,為監聽設定口令Oracle
- Oracle資料庫使用者安全策略功能介紹Oracle資料庫
- 有關作業系統使用者口令的操作:作業系統
- Oracle使用者角色許可權管理Oracle
- Oracle使用者管理熱備份原理Oracle