You Can check the video here
Thank you
Osama Mustafa
For the people who think differently Welcome aboard
You Can check the video here
Thank you
Osama Mustafa
emctl start dbcsonole
Working without any errors, metrics collected, but when trying to run
emctl start iasconsole
Or
emctl istart iasconsole
The Error ” Unable to determine console port, default-web-site.xml : no such file or directory”
The File is exists, and configured to run oc4j on port 8888, http://hostname:888/em not working with error “iasconsole service should be stopped”. Weird !!!!!
Operating system Oracle Linux 64bit, After investigation i discovered that binary/files for oc4j in ORACLE_HOME was corrupted and not working correctly however this is what i did to fix this error :-
First Download OC4J_extend.zip from here, this zip file contain same directory files ( xml,config ) in oc4j ($ORACLE_HOME/oc4j) so extract this file inside this path, if oc4j not exist create one and extract the zip file into this directory.
But this is will not make oc4j works, complete the below steps to make sure everything is working fine.
[oracle@PROD bin]$ ./java -jar /u01/app/oraclenew/product/11.2.0/dbhome_1/oc4j/j2ee/home/oc4j.jar
Apr 3, 2014 2:51:51 PM com.evermind.server.XMLApplicationServerConfig randomizeJtaAdminPassword
INFO: Updating JtaAdmin account
14/04/03 14:52:30 Set OC4J administrator’s password (password text will not be displayed as it is entered)
Enter password:
Confirm password:
The password for OC4J administrator “oc4jadmin” has been set.
14/04/03 14:52:35 The OC4J administrator “oc4jadmin” account is activated.
14/04/03 14:52:39 Oracle Containers for J2EE 10g (10.1.3.3.0) initialized
Create table with two columns (username , password )
CREATE TABLE PASSWORD
(USER_ID NUMBER(3) CONSTRAINT PASSWORD_USER_ID_PK PRIMARY KEY,
PASSWORD VARCHAR2(20) NOT NULL);
INSERT INTO PASSWORD (USER_ID,PASSWORD)
VALUES (1,100);
INSERT INTO PASSWORD (USER_ID,PASSWORD)
VALUES (2,200);
Second:
Create Forms Look Like the Following :
Third :
You have two way to check Username, password :
Using Trigger in When_button_presses
BEGIN
SELECT USER_ID
INTO :GLOBAL.USER_ID
FROM PASSWORD
WHERE USER_ID = :LOGIN.TI_USER_ID
AND PASSWORD= :LOGIN.TI_PASSWORD;
GO_BLOCK(‘PASSWORD’);
EXCEPTION
WHEN NO_DATA_FOUND THEN
:GLOBAL.COUNT := :GLOBAL.COUNT + 1;
IF :GLOBAL.COUNT = 1 THEN
MESSAGE(‘wrong’);
MESSAGE(‘wrong’);
ELSIF
:GLOBAL.COUNT = 2 THEN
MESSAGE(‘wrong’);
MESSAGE(‘wrong’);
ELSIF
:GLOBAL.COUNT = 3 THEN
EXIT_FORM;
END IF;
END;
there’s million way to do this . this is the easy one
you Can Create procedure inside Program_unit Name it Vaildation_pass.
But Inside When_button_pressed Write procedure name .
Vaildation_pass
PROCEDURE VALIDATION_PASS IS
BEGIN
SELECT USER_ID
INTO :GLOBAL.USER_ID
FROM PASSWORD
WHERE USER_ID = :LOGIN.TI_USER_ID
AND PASSWORD= :LOGIN.TI_PASSWORD;
GO_BLOCK(‘PASSWORD’);
EXCEPTION
WHEN NO_DATA_FOUND THEN
:GLOBAL.COUNT := :GLOBAL.COUNT + 1;
IF :GLOBAL.COUNT = 1 THEN
MESSAGE(wrong’);
MESSAGE(wrong’);
ELSIF
:GLOBAL.COUNT = 2 THEN
MESSAGE(wrong’);
MESSAGE(wrong’);
ELSIF
:GLOBAL.COUNT = 3 THEN
EXIT_FORM;
END IF;
END;
Notice that above code contain global_variable So We need to add Trigger (form_level)/When_new_forms_instance.
Inside this trigger add :GLOBAL.COUNT = 0
Subject Written by Arefa in Arabic Review it here
Thank You
Osama Mustafa
but what if you need to check the value is number in oracle Use :
LENGTH(TRIM(TRANSLATE(, ‘ +-.0123456789’, ‘ ‘))) is null
Simple
Osama mustafa
What is Data Masking Mean ?
simple way to hide you valuable data from certain users without having to apply encrypt/decrypt techniques and increase the column width to accommodate the new string like the old times. Through some simple configuration you can create policies to show your important columns as null without rewriting a single line of code on your application side.
There are 3 steps for accomplish column masking:
Step1 : Create Function Policy
CREATE OR REPLACE
FUNCTION vpd_function (obj_owner IN VARCHAR2, obj_name IN VARCHAR2)
RETURN VARCHAR2
AS
BEGIN
RETURN ‘rowid = ”0”’;
END vpd_function;
/
The Above Function is Used for Column Masking , If you set this function to True All User will be able to see the correct Data , But the above function Is to False (rowid=0).
Step2: Create Policy
BEGIN
DBMS_RLS.ADD_POLICY(object_schema=> ‘SCOTT’,
object_name=> ‘EMP’,
policy_name=> ‘scott_emp_policy’,
function_schema=> ‘SYSTEM’,
policy_function=> ‘vpd_function’,
sec_relevant_cols=> ‘JOB’,
policy_type => DBMS_RLS.SHARED_STATIC,
sec_relevant_cols_opt=> dbms_rls.ALL_ROWS);END;
/
exempt access policy : Use to Exclude Some Users to See All the Correct Data .
Important Views :
dba_policies
v$vpd_policy
Enjoy with Security
Osama Mustafa
SQL> alter user u1 identified by u1
2 /
alter user u1 identified by u1
*
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at line 6
Solution :
SQL> alter system set "_system_trig_enabled"=FALSE;
System altered.
Enjoy
Osama Mustafa
I post before about sqlnet.ora with parameter called invited_list , Exclude_list , assume that i want to prevent sysdba to access database without password Simple Way .
Setting “SQLNET.AUTHENTICATION_SERVICES” parameter to “NONE” in sqlnet.ora file will make it not possible to connect to the database without a password as sysdba. (sqlplus / as sysdba)
This parameter may also have the values : NTS for Windows NT native authentication, ALL for all authentication methods.
Authentication Methods Available with Oracle Advanced Security:
kerberos5 for Kerberos authenticationcybersafe for Cybersafe authenticationradius for RADIUS authenticationdcegssapi for DCE GSSAPI authenticationIf authentication has been installed, it is recommended that this parameter be set to either none or to one of the authentication methods.
Enjoy
Thank you
Osama Mustafa
This is Bug 9707317.
Posting Performance issue caused by Rule Hint being hard coded in the glsasi.lpc file.
The program uses the “/*+ rule */” hint, but it should be using “/*+ CHOOSE */” or none, which is shown in the tkprof’d trace file explain plan.
Also the wrong index is being used, it is using GL_ACCOUNT_HIERARCHIES_01 when it should be using the GL.GL_ACCOUNT_HIERARCHIES_U2 index.
To implement the solution, please execute the following steps:
1. Download and review the readme and pre-requisites for the relevant patch.
For 12.0.x patch 9707317:R12.GL.A
For 12.1.x patch 9707317:R12.GL.B
Note: If a password is required to download the patch, please open a service request to get the proper password.
2. Ensure that you have taken a backup of your system before applying the recommended patch.
3. Apply the patch in a test environment.
4. Confirm the following file versions:
For 12.0 Patch 9707317:R12.GL.A
src/post glpmai.opc 120.21.12000000.2
src/summary glsasi.lpc 120.3.12000000.2
For 12.1 Patch 9707317:R12.GL.B
src/post glpmai.opc 120.24.12010000.1
src/summary glsasi.lpc 120.3.12010000.1
You can use the commands like the following:
strings -a $XX_TOP/filename |grep ‘$Header’
5. Retest the issue.
6. Migrate the solution as appropriate to other environments.
Enjoy
thank you
Osama mustafa