الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

users connected only from their applications

Featured Replies

بتاريخ:

How to prevent users from connect through any tool except their application



Note: The Database is Oracle 9i RAC on HP Tru64 Unix

بتاريخ:

do not use database user or
you should use label security for each user in the database
to prevent user from changing data from any tools

بتاريخ:
  • كاتب الموضوع

Hi


Thank you
1. I must be used database users because I have security application dealing with these users.
2. But the second method I don't know what are you mean about label security

بتاريخ:
  • كاتب الموضوع

This document describes how to prevent end users from connect through any oracle tools except their applications.



Do the following steps:

1- Create or submit a job to the job queue, use the SUBMIT procedure in the
DBMS_JOB package with PL/SQL code do the purpose of this document
Called AUTH_SESSION procedure.

VARIABLE jobno NUMBER
BEGIN
DBMS_JOB.SUBMIT
(:jobno,'AUTH_SESSION;',SYSDATE,'SYSDATE+(1/(24*60*20))');
COMMIT;
END;

2- Set the JOB_QUEUE_PROCESSES and JOB_QUEUE_INTERVAL in initial
parameters file to enable the job on database.

3- Create a USERS table on SYS user to save the exception users you need them to connect until expiry date (dealing with this table through interface).

CREATE TABLE USERS
(USERID NUMBER NOT NULL, USERNAME VARCHAR2(30) NOT NULL,
EXPIRY_DATE DATE, EXPIRY_TIME VARCHAR2(10));

3- Create the PL/SQL code AUTH_SESSION procedure on SYS user.

CREATE OR REPLACE PROCEDURE AUTH_SESSION
IS
KILL_cur INTEGER;
KILL_cur_feedback INTEGER;
session_id NUMBER;
serial_no NUMBER;
CURSOR cur_GET_SESSIONS IS
SELECT sid,serial#,module,action FROM V$SESSION
WHERE (module is null or action is null) and username <>'SYS' and
username <>'SYSTEM and username not in (select username from users
where (EXPIRY_DATE >sysdate) or
(to_date(EXPIRY_DATE,'dd-mon-yyyy') = to_date(sysdate,'dd-mon-yyyy')
and EXPIRY_time >=to_char(sysdate,'hh24:mi:ss' )));
BEGIN

FOR result_GET_SESSIONS IN cur_GET_SESSIONS LOOP
session_id := result_GET_SESSIONS.SID;
serial_no := result_GET_SESSIONS.SERIAL# ;
KILL_cur := DBMS_SQL.OPEN_CURSOR;
DBMS_SQL.PARSE(KILL_cur,
' ALTER SYSTEM KILL SESSION ''' || session_id || ', ' || serial_no || ''''
,DBMS_SQL.NATIVE(;
KILL_cur_feedback := DBMS_SQL.EXECUTE(KILL_cur);
DBMS_SQL.CLOSE_CURSOR(KILL_cur);

END LOOP;

EXCEPTION
WHEN OTHERS THEN
DBMS_SQL.CLOSE_CURSOR(KILL_cur(;
END;


4- On application level create trigger WHEN_NEW_FORM_INSTANCE and set the
module and action columns in V$SESSION by using SET_MODULE procedure
in DBMS_APPLICATION_INFO package.

DBMS_APPLICATION_INFO.SET_MODULE('SECURITY','APPLICATION');

Notes:
1- The first three step done on database level.
2- All packages used in this document exist on database level.
3- This way do not prevent the connection but kill session after 3 second from connect if module and action columns is null and username not on the
exceptions.

بتاريخ:
  • كاتب الموضوع

but this method have problam with rac because I can kill session from client in rac system

بتاريخ:

ال label security موضوع واسع انا لم ادخل به لغاية الان هو ببساطة اعطاء صلاحيات للمستخدمين على الجداول وبياناتها مثلاً نمنع مستخدم من التعديل على كل موظفين الدائرة 10 ولكن له الصلاحية على بقية الدوائر وهكذا.

كل هذا في الداتابيز اي شغال مهما كانت الاداة التي دخل بها المستخدم

بحيث تقوم بتحديد السياسات التي تريدها على الجداول ومن ثم تقوم بأنشائها في الداتابيز

تذكرت الان انه يوجد جدول من جداول قواميس البيانات يخزن معلومات عن السشن الحالي احد هذه المعلومات هو اسم الاداة التي دخل بها المستخدم لا اذكر اسم الجدول الان اذا تذكرته سوف ارسله لك

ولا تنسى بأنه يوجد داتابيز تريجر يكتب على المستخدم اسمه onlog on ماذا لو كتبته على ال sys وتعمل kill session لكل المستخدمين الذين دخلو من اداة غير الفورم
انا لم اجرب ذلك

هذا كل ما عندي
والى الامام جميعا

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.