0
    set serveroutput on;
   declare
    username1 varchar2(40);
   cnt number;
    hello varchar2(20);
    c sys_refcursor;
    begin
    select sys_context('userenv','session_user') into username1 from dual;
     select lower(username1) into username1 from dual;
     select count(lower(username)) into cnt from karuna.tableusers where        lower(username)=username1;
     if cnt=1 then
     dbms_output.put_line('username found');
      execute immediate 'connect karuna/password ';
     open c for 'select item_name  from sells12 where item_id=12';
      fetch c into hello;
      dbms_output.put_line(hello);
      close c;
     else
     dbms_output.put_line('u dont have previllege to access database');
      ----raise_application_error(-20001,'error out');
       end if;
       end;

/

セッション ユーザーを切り替えたいのですが、カルナ/カルナ回線の接続でエラーが発生します

4

2 に答える 2

1

Oracle の機能である n 層 (プロキシ) 認証を見てください。多分それはあなたが必要とするものではありません。オラクルは以下を提供します。

  • n 層認証
  • 役割ステートメントを設定します(パスワードで「保護された」役割からより多くの特権を取得するため)
  • セッションを変更し、current_schema=KARUMA を設定します。これにより、ユーザー名/特権は切り替わりませんが、デフォルトのスキーマが切り替わります。

正しい選択は、ニーズによって異なります。

于 2013-03-04T09:49:18.780 に答える
0

ユーザーからKARUMAユーザーに接続するには、dba権限またはCONNECT権限を付与する必要があります。

このリンクに従ってください http://docs.oracle.com/cd/B28359_01/java.111/b31224/proxya.htm

于 2013-03-10T09:04:21.347 に答える