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