2010-11-19 7 views
2

私は3人のOracleユーザーA、B、Cを持っていて、CからAへテーブルをインポートするためにBを使用したいと考えています。Bに接続すると、 "create table A.T1 as select * from T1 @ C "となる。しかし、SQL文をBが作成/所有するプロシージャに入れると、 "ORA-01031:十分な権限が得られません"。 sysdbaとして、私はBにすべての権利(dba)を与えました。だから私はここで何が欠けていますか?ありがとうございました。Oracleプロシージャは、その作成者の権限を継承しますか?

答えて

2

Bさんに次の権限を与えましたか?定義者権限ストアドプロシージャ(デフォルト)では

sql> grant create any table to b; 
5

、利用可能な唯一の権限はユーザーではなく、(DBAなどの)ロールを介して付与されたものに直接付与されるものです。したがって、PabloはBがCREATE ANY TABLE特権を直接許可として持つ必要があることは間違いありません。

+1

デフォルトは "所有者の権利"です。 – redcayuga

+1

@redcayuga - +1とキャッチのためにありがとう!あなたは絶対に正しいです。あなたの修正を反映するように私の答えを更新しました。 –

+0

"AUTHID DEFINER" ...;)これがデフォルトです。代わりに、私はいつも試してみたい "AUTHID CURRENT_USER"です...! –

関連する問題