PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

izin ditolak mencoba membaca file csv menggunakan JDBC untuk database postgres

Apakah Anda menjalankan pernyataan sebagai pengguna super di psql dan sebagai pengguna lain melalui JDBC?
manual memberitahu kami :

Anda bisa menghindari pembatasan ini dengan membungkus pernyataan dalam fungsi dengan SECURITY DEFINER dimiliki oleh superuser. Waspadai risiko keamanan . Anda mungkin juga ingin MENcabut semua hak dari publik dan hanya GRANT kepada pengguna yang dipilih. Bisa terlihat seperti ini:

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;

Perlu diketahui juga bahwa sintaks yang tepat untuk escape string adalah:

E'C:\\Users\\Abhishek\\Desktop\\data1.csv'

Perhatikan E'...' .
Pada versi 9.1, pengaturan standard_conforming_strings aktif secara default, menerapkan ini.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JPA menghasilkan kunci duplikat

  2. Apa perbedaan antara Seq Scan dan Bitmap heap scan di postgres?

  3. Migrasi Rails:mencoba mengubah jenis kolom dari string menjadi integer

  4. Bagaimana cara menggunakan pemicu 'untuk pernyataan' di postgres?

  5. Apakah order by in view menjamin order pilih?