2011-07-18 9 views
0

ビューBのデータを選択するビューAがあります。私は、Peterさんのようなユーザーには、ビューAで読み取り専用アクセス権を持たせたいが、ビューBでは選択できないようにしたい。だから私は彼にはビューAの右にSELECT、ビューBにはREFERENCESの権利しか与えられません。それはとてもうまくいく。テーブル、ビュー、およびファンクションへのアクセス許可

私はテーブルBからデータを選択する機能Aを持っていますが、機能Aを実行することができますが、テーブルBからデータを選択することはできません。ファンクションAの右にEXECUTE、表Bの右側にREFERENCESがあります。しかし、動作できず、ピーターが関数Aを実行すると、エラーメッセージ"ERROR: permission denied for relation TableB"がスローされます。どのようにして今回は動作しませんか?

答えて

1

私はあなたがsecurity definerを探していると思う。

脇に、leaky view problemに注意してください。まだ完全には固定されていません。

+0

Thanks Denis。セキュリティ定義者は私が探しているものです。あなたはビューにも同じセキュリティ定義者機能があると思いますか?私は、セキュリティ上の定義者については何も見当たりませんから、そうではないと思いますよね? –

+0

あなたはビューのセキュリティ権を持っています。セキュリティ定義者は機能用です。 –

関連する問題