-1

テーブルのスキーマにアクセスするためのアクセス許可をユーザーに与えるが、テーブル内のデータにはアクセスできない方法はありますか?? どんな答えや提案も大歓迎です....

4

1 に答える 1

1

スキーマでテーブルの DDL ステートメントを意味すると仮定すると、これを行う 1 つの方法を次に示します。

   -- as table owner
   create or replace function getDDLForTable(table_name in varchar2) 
     return CLOB is
          l_Result CLOB;
        begin
          select dbms_Metadata.get_ddl('TABLE',
                                       table_name)
            into l_result
            from dual;
          return l_Result;
        end;

   grant execute on getDDLForTable to <other_user>;

   -- as other_user
   select <owner>.getDDLForTable('T') from dual

秘訣は、(テーブルの所有者として) DDL ステートメントを返す関数を作成し、この関数の実行権限を他のユーザーに付与することです。

于 2013-04-11T07:15:23.737 に答える