title: Postgres SQL - error: must be superuser to copy to or from a file
body: <p>I have copied function(from one of the webportal and modified accordingly) to copy data from csv file to table.</p>
  
  <pre><code>create or replace function public.load_csv_file
  (
  target_table text,
  csv_path text,
  col_count integer
  )
  
  returns void as $$
  
  declare
  
  iter integer; -- dummy integer to iterate columns with
  col text; -- variable to keep the column name at each iteration
  col_first text; -- first column name, e.g., top left corner on a csv file or     spreadsheet
  
  begin
  set schema 'public';
  
  create table insert_from_csv ();
  
  -- add just enough number of columns
  for iter in 1..col_count
  loop
      execute format('alter table insert_from_csv add column col_%s text;', iter);
  end loop;
  
  -- copy the data from csv file
  execute format('copy insert_from_csv from %L with delimiter '','' quote ''"'' csv ', csv_path);
  
  iter := 1;
  col_first := (select col_1 from insert_from_csv limit 1);
  
  -- update the column names based on the first row which has the column names
  for col in execute format('select unnest(string_to_array(trim(temp_table::text, ''()''), '','')) from temp_table where col_1 = %L', col_first)
  loop
      execute format('alter table insert_from_csv rename column col_%s to %s', iter, col);
      iter := iter + 1;
  end loop;
  
  -- delete the columns row
  execute format('delete from insert_from_csv where %s = %L', col_first, col_first);
  
  -- change the temp table name to the name given as parameter, if not blank
  if length(target_table) &gt; 0 then
      execute format('alter table insert_from_csv rename to %I', target_table);
  end if;
  
  end;
  
  $$ language plpgsql;
  </code></pre>
  
  <p>And 
  passing parameters as</p>
  
  <p>select load_csv_file('Customer','C:\Insert_postgres.csv' ,4)</p>
  
  <p>but getting error message</p>
  
  <p>ERROR: must be superuser to COPY to or from a file
    Hint: Anyone can COPY to stdout or from stdin. psql's \copy command also works for anyone.</p>
  
  <p>The idea is, i will create a automated test, and if i want to test on different instance then test should automatically create function and copy data from csv file.
  Is there any work around to copy data without superuser?</p>