2016-05-09 6 views
0

私はfn_exportという名前の関数を持っています。その所有者はbhistです。私は、bhist.fn_exportを使ってohistユーザからこの関数を呼び出しています。このように私は以下の問題に直面しています。oracleの別の所有者に対する関数へのアクセス?

ORA-00942: table or view does not exist 
ORA-06512: at "bhist.fn_export", line 442 
ORA-06512: at line 20 

私はその機能のすべてのテーブルを検証しようとしましたが、私はそれらのすべてのテーブルにohistからアクセスできました。私はohistへのbhist.fn_exportの助成金を実行しました。それでも私はこの問題を抱えています。この問題を解決するのにお手伝いしていただけますか?

おかげで、 ヴェンカト

+0

BDMAPPHIST.FN_EXCEL_EXPORTという別の所有者のオブジェクトも含まれているようです。私はあなたにもこれにSELECT助成金が必要だと思います。 –

+0

機能上のSELECT許可は可能ですか?もしそうなら、あなたはこの助成金のサンプルSQLを手伝ってもらえますか?私のためにbhist.fn_exportをohist dintに任せる –

答えて

1

あなたはohistユーザーにこの機能にEXECUTE権限を付与する必要があります。
構文は次のとおりです。

GRANT EXECUTE ON function_name TO username; 

あなたはbhistユーザーとして接続して使用して権限を付与することができます

GRANT EXECUTE ON fn_export TO ohist; 

をあなたはまた、SYSまたはSYSTEMとして接続し、このコマンドを使用することができます。

GRANT EXECUTE ON bhist.fn_export TO ohist; 

以下の簡単な例を参照してください(1人のユーザーの名前はTEST、もう1人のユーザーの名前はDEV

SQL> connect test 
Enter password: 
Connected. 
SQL> CREATE FUNCTION fn_export RETURN number AS 
    2 BEGIN 
    3 RETURN 20; 
    4 END; 
    5/

Function created. 

SQL> connect dev 
Enter password: 
Connected. 
SQL> SELECT test.fn_export FROM dual; 
SELECT test.fn_export FROM dual 
     * 
ERROR at line 1: 
ORA-00904: "TEST"."FN_EXPORT": invalid identifier 


SQL> connect test 
Enter password: 
Connected. 
SQL> grant execute on fn_export to dev; 

Grant succeeded. 

SQL> connect dev 
Enter password: 
Connected. 
SQL> SELECT test.fn_export FROM dual; 

FN_EXPORT 
---------- 
     20 

SQL> 
関連する問題