Tôi có một vấn đề sau: Trên mỗi máy chạy Postgresql đều có một postgres người dùng đặc biệt . Người dùng này có quyền truy cập quản trị vào máy chủ cơ sở dữ liệu.
Bây giờ tôi muốn viết một tập lệnh Bash thực thi một lệnh cơ sở dữ liệu với psql là các postgres của người dùng (psql sẽ thực thi như các postgres của người dùng , không phải là script). Cho đến nay, đó sẽ không phải là vấn đề: tôi chỉ có thể chạy tập lệnh dưới dạng postgres của người dùng .
Tuy nhiên, tôi muốn ghi đầu ra của psql vào một tệp trong thư mục mà postgres không có quyền ghi.
Làm thế nào tôi có thể làm điều đó?
Tuy nhiên, tôi đã nghĩ về việc thay đổi EUID trong tập lệnh:
- Tôi không thể tìm cách thay đổi EUID trong tập lệnh Bash
- Làm cách nào tôi có thể thay đổi EUID khi sử dụng một cái gì đó như thế
psql -U postgres -c "<command>" > file
nào?