1
C言語機能をPostgreSQLデータベースにインポートしようとしています。共有オブジェクト(.so)ファイルに対するアクセス許可が拒否されました。
私のホームディレクトリ内に私の共有オブジェクトがありますが、自分のデータベース上で使用することはできません。
CREATE OR REPLACE FUNCTION add_one(integer) RETURNS integer AS '/home/pedro/.../.../example.so', 'add_one' LANGUAGE C STRICT;
そして、これが私のエラーメッセージです:
ERROR: could not access file "/home/pedro/.../.../example.so": Permission denied
私はおそらく、このファイルへのアクセスをブロックし、私のOSであるが、私はすべてのユーザーに許可を与えたくないと思います。
tl; dr:自分のpostgresqlデータベース内で共有オブジェクトファイルとして自分のC言語関数をインポートするための洗練されたソリューションを探しています。
ありがとうございます!
だから私は試しました: 'sudo chown postgres/home/pedro /.../.../ example.so'と' sudo chmod u + rX /home/pedro/.../...// example.so'と動作しませんでした。 実行中: 'ls -l/home/pedro /.../.../ example.so' ' -rwxrwxrwx 1 postgres postgres 12952 Aug 17 17:42 /home/pedro/.../ .../example.so' ユーザー(pedro)と(postgres)のユーザーと試してみました。 –
は、postgresユーザーが読むことができるディレクトリ内のファイルですか? –
私は、postgresのホームディレクトリのどこかに(これらのものはbtwのデータディレクトリの外に)ディレクトリを置くことをお勧めします。 –