Ez az "oracle" hirdetesi felulet pillanatnyilag INGYEN kiado! Miert? Mert ha a google.hu-ba beirod hogy "oracle dba" eleg elokelo helyen vagyok! altalaban 1. :P kuldj mailt ide: orclblog [at] gmail.com
Ez az "oracle" hirdetesi felulet pillanatnyilag INGYEN kiado! Miert? Mert ha a google.hu-ba beirod hogy "oracle dba" eleg elokelo helyen vagyok! altalaban 1. :P kuldj mailt ide: orclblog [at] gmail.com

Naptár

május 2024
Hét Ked Sze Csü Pén Szo Vas
<<  < Archív
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

Friss topikok

2008.08.20. 14:50 darvat

engedjuk meg hogy a felhasznalok sajat session-jeiket kilojek - Oracle DBA - Oracle adatbazis - Oracle database

"Let the users kill their own oracle sessions"  -  tesztelve Oracle 10g-ben

mivel egyre tobb ilyen jellegu kerest kapok mostanaban (please, kill this or that session...)

ugy dontottem megadom a lehetoseget a kollegaknak, hogy sajat maguk lojek ki a "nemkivanatos" munkameneteket.

ez nem trivialis, mivel alter system rendszerjogosultsag szuksegeltetik, azt meg ugye nem osztjuk szire-szora :)

Fontos kiemelni, hogy csak a sajat felhasznalo altal folyamatban levo munkameneteket kepesek a kollegak kiloni (magyarul, ha user scott futtat egy monster lekerdezest, akkor pl.: sqlplus-ba be kell lepjen scott es csak igy tudja kiloni a masik sessiont, ahol a lekerdezese fut).

Telepitese: egy poweruser schema-jaba (<POWERUSER>) az alabbi pkg-t installaljuk.

a kovetkezo jogosultsagot szuksegesek az installalo (<POWERUSER>) schemanak (direktben grantolva, role-on keresztul nem mukodik):

grant select on sys.v_$session to <POWERUSER>;

grant alter system to <POWERUSER>;

majd johet a pkg krealasa.

Telepites utan (<POWERUSER> felhasznalokent):

grant execute on <POWERUSER>.cs_util to public;
create public synonym cs_util for <POWERUSER>.cs_util;

Tovabba:

- SYS% session-t nem lehet kiloni

- mivel nalunk a prod adatbazisok neve PZH.... ezert a P% instance-okon nem lehet hasznalni a pkg-t (kis elovigyazatossag)

 CREATE OR REPLACE PACKAGE CS_UTIL AS

  PROCEDURE KillSid(in_sid IN NUMBER, in_serial in number);

END CS_UTIL;
/
CREATE OR REPLACE PACKAGE BODY cs_util
AS
   PROCEDURE killsid (in_sid IN NUMBER, in_serial IN NUMBER)
   AS
      suser      VARCHAR2 (30);
      killuser   VARCHAR2 (30);
   BEGIN
      SELECT SYS_CONTEXT ('USERENV', 'SESSION_USER')
        INTO suser
        FROM DUAL;

      SELECT username
        INTO killuser
        FROM SYS.v_$session
       WHERE SID = in_sid AND serial# = in_serial;

      IF killuser <> suser
      THEN
         raise_application_error
                (-20001,
                 'SID owner and user executing this procedure does not match'
                );
      ELSIF SUBSTR (SYS_CONTEXT ('USERENV', 'INSTANCE_NAME'), 1, 1) = 'P'
      THEN
         raise_application_error
                 (-20003,
                  'Killing sessions are not allowed on production instances.'
                 );
      ELSIF suser LIKE 'SYS%'
      THEN
         raise_application_error (-20004,
                                  'Killing SYS% processes are not allowed.'
                                 );
      ELSE
         EXECUTE IMMEDIATE    'alter system kill session '''
                           || in_sid
                           || ','
                           || in_serial
                           || '''';
      END IF;
   EXCEPTION
      WHEN NO_DATA_FOUND
      THEN
         raise_application_error (-20002,
                                     'SID: '
                                  || in_sid
                                  || ', serial: '
                                  || in_serial
                                  || ' does not exist.'
                                 );
   END;
END;
/

 

Szólj hozzá!


Ez az "oracle" hirdetesi felulet pillanatnyilag INGYEN kiado :)Miert? Mert ha a google.hu-ba beirod hogy "oracle dba" eleg elokelo helyen vagyok! altalaban 1. :P kuldj mailt ide: orclblog [at] gmail.com

A bejegyzés trackback címe:

https://oracle.blog.hu/api/trackback/id/tr5624619

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása