|
Skillset 1
Section 7装agent:
wget http://station37.example.com:488 ... agentDownload.linux
./agentDownload.linux -b /u01/app/oracle/product/11.1.0/ -m station37.example.com -r 4889
[oracle@station38 ~]$ sudo /u01/app/oracle/product/agent10g/root.sh
Running Oracle10 root.sh script...
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /u01/app/oracle/product/agent10g
Enter the full pathname of the local bin directory: [/usr/local/bin]:
The file "dbhome" already exists in /usr/local/bin. Overwrite it? (y/n)
[n]: y
Copying dbhome to /usr/local/bin ...
The file "oraenv" already exists in /usr/local/bin. Overwrite it? (y/n)
[n]: y
Copying oraenv to /usr/local/bin ...
The file "coraenv" already exists in /usr/local/bin. Overwrite it? (y/n)
[n]: y
Copying coraenv to /usr/local/bin ...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
Finished product-specific root actions.
[oracle@station38 ~]$
[oracle@station38 bin]$ ./emctl secure agent
Oracle Enterprise Manager 10g Release 5 Grid Control 10.2.0.5.0.
Copyright (c) 1996, 2009 Oracle Corporation. All rights reserved.
Agent successfully stopped... Done.
Securing agent... Started.
Enter Agent Registration Password :
Agent successfully restarted... Done.
Securing agent... Successful.
[oracle@station38 bin]$ ./emctl upload agent
Oracle Enterprise Manager 10g Release 5 Grid Control 10.2.0.5.0.
Copyright (c) 1996, 2009 Oracle Corporation. All rights reserved.
---------------------------------------------------------------
EMD upload completed successfully
[oracle@station38 bin]$
Section3:
- CREATE OR REPLACE FUNCTION verify_function_11G
- (username varchar2,
- password varchar2,
- old_password varchar2)
- RETURN boolean IS
- n boolean;
- m integer;
- differ integer;
- isdigit boolean;
- ischar boolean;
- ispunct boolean;
- db_name varchar2(40);
- digitarray varchar2(20);
- punctarray varchar2(25);
- chararray varchar2(52);
- i_char varchar2(10);
- simple_password varchar2(10);
- reverse_user varchar2(32);
- ----------------------
- part1 varchar2(30);
- ----------------------
- part2 varchar2(30);
- BEGIN
- digitarray:= '0123456789';
- chararray:= 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
- -- Check for the minimum length of the password
- IF length(password) < 8 THEN
- raise_application_error(-20001, 'Password length less than 8');
- END IF;
- --------------------------------
- IF length(password) > 30 THEN
- raise_application_error(-20900, 'Password length more than 30');
- END IF;
- -- Check if the password is same as the username or username(1-100)
- IF NLS_LOWER(password) = NLS_LOWER(username) THEN
- raise_application_error(-20002, 'Password same as or similar to user');
- END IF;
- ----------------------------------------------------------------------
- IF length(password)>length(username)
- THEN
- part1 := SUBSTR(password, 1, length(username));
- part2 := SUBSTR(password, length(username)+1);
- FOR i IN 1..(10**(length(part2)+1)-1)
- LOOP
- i_char := to_char(i);
- if NLS_LOWER(username)|| i_char = NLS_LOWER(password) THEN
- raise_application_error(-20005, 'Password same as or similar to user name ');
- END IF;
- END LOOP;
- END IF;
- -- Check if the password is same as the username reversed
-
- FOR i in REVERSE 1..length(username) LOOP
- reverse_user := reverse_user || substr(username, i, 1);
- END LOOP;
- IF NLS_LOWER(password) = NLS_LOWER(reverse_user) THEN
- raise_application_error(-20003, 'Password same as username reversed');
- END IF;
- -- Check if the password is the same as server name and or servername(1-100)
- select name into db_name from sys.v$database;
- if NLS_LOWER(db_name) = NLS_LOWER(password) THEN
- raise_application_error(-20004, 'Password same as or similar to server name');
- END IF;
- FOR i IN 1..100 LOOP
- i_char := to_char(i);
- if NLS_LOWER(db_name)|| i_char = NLS_LOWER(password) THEN
- raise_application_error(-20005, 'Password same as or similar to server name ');
- END IF;
- END LOOP;
- -- Check if the password is too simple. A dictionary of words may be
- -- 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 ('welcome1', 'database1', 'account1', 'user1234', 'password1', 'oracle123', 'computer1', 'abcdefg1', 'change_on_install') THEN
- raise_application_error(-20006, 'Password too simple');
- END IF;
- -- Check if the password is the same as oracle (1-100)
- simple_password := 'oracle';
- FOR i IN 1..100 LOOP
- i_char := to_char(i);
- if simple_password || i_char = NLS_LOWER(password) THEN
- raise_application_error(-20007, 'Password too simple ');
- END IF;
- END LOOP;
- -- Check if the password contains at least one letter, one digit
- -- 1. Check for the digit
- isdigit:=FALSE;
- m := length(password);
- FOR i IN 1..10 LOOP
- FOR j IN 1..m LOOP
- IF substr(password,j,1) = substr(digitarray,i,1) THEN
- isdigit:=TRUE;
- GOTO findchar;
- END IF;
- END LOOP;
- END LOOP;
- IF isdigit = FALSE THEN
- raise_application_error(-20008, 'Password must contain at least one digit, one character');
- END IF;
- -- 2. Check for the character
- <<findchar>>
- ischar:=FALSE;
- FOR i IN 1..length(chararray) LOOP
- FOR j IN 1..m LOOP
- IF substr(password,j,1) = substr(chararray,i,1) THEN
- ischar:=TRUE;
- GOTO endsearch;
- END IF;
- END LOOP;
- END LOOP;
- IF ischar = FALSE THEN
- raise_application_error(-20009, 'Password must contain at least one \
- digit, and one character');
- END IF;
- <<endsearch>>
- -- Check if the password differs from the previous password by at least
- -- 3 letters
- IF old_password IS NOT NULL THEN
- differ := length(old_password) - length(password);
- differ := abs(differ);
- IF differ < 3 THEN
- IF length(password) < length(old_password) THEN
- m := length(password);
- ELSE
- m := length(old_password);
- END IF;
- FOR i IN 1..m LOOP
- IF substr(password,i,1) != substr(old_password,i,1) THEN
- differ := differ + 1;
- END IF;
- END LOOP;
- IF differ < 3 THEN
- raise_application_error(-20011, 'Password should differ from the \
- old password by at least 3 characters');
- END IF;
- END IF;
- END IF;
- -- Everything is fine; return TRUE ;
- RETURN(TRUE);
- END;
- /
- -- This script alters the default parameters for Password Management
- -- This means that all the users on the system have Password Management
- -- enabled and set to the following values unless another profile is
- -- created with parameter values set to different value or UNLIMITED
- -- is created and assigned to the user.
- ALTER PROFILE DEFAULT LIMIT
- PASSWORD_VERIFY_FUNCTION verify_function_11G;
复制代码
|
|