スーパーユーザーとしてステートメントを実行しましたか psqlで、JDBCを介して別のユーザーとして?
マニュアル教えてくれます
:
できます SECURITY DEFINER
スーパーユーザーが所有します。 セキュリティリスク> 。 REVOKE
を使用することもできます。 すべての権利は一般に公開されており、付与
のみです。 選択したユーザーに。次のようになります:
CREATE OR REPLACE FUNCTION foo()
RETURNS void AS
$BODY$
COPY data_1
FROM E'C:\\Users\\Abhishek\\Desktop\\data1.csv'
USING delimiters ',';
$BODY$
LANGUAGE sql VOLATILE SECURITY DEFINER
SET search_path = public, pg_temp; -- or whatever schema the table is in
REVOKE ALL ON FUNCTION foo() FROM public;
GRANT SELECT ON FUNCTION foo() TO my_user;
また、にも注意してください。エスケープ文字列の適切な構文 は:
E'C:\\Users\\Abhishek\\Desktop\\data1.csv'
E'...'
に注意してください 。
バージョン9.1以降、設定standard_conforming_strings
デフォルトでオンになっており、これを強制します。