Saya memiliki instance AWS EC2 yang menghubungkan ke instance RDS (Postgresql). Ketika saya membuat instance RDS, saya memberi tahu nama pengguna DB root: my_user1
dan kata sandinya password1
. Sekarang saya mencoba untuk membuat peran dan pengguna super. Tetapi gagal:
$ createuser -P -d -s -e my_user2 --host myhost.com -U my_user1
Enter password for new role: XXXYYYZZZ
Enter it again: XXXYYYZZZ
Password: password1
CREATE ROLE my_user2 PASSWORD 'md5999999c0101a1d64afd57575e06f999c' SUPERUSER CREATEDB CREATEROLE INHERIT LOGIN;
createuser: creation of new role failed: ERROR: must be superuser to create superusers
$
Ketika saya mengulangi perintah tanpa -s
bendera, itu berfungsi:
$ createuser -P -d -e my_user2 --host myhost.com -U my_user1
Enter password for new role:
Enter it again:
Password:
CREATE ROLE my_user2 PASSWORD 'md5999999c0101a1d64afd57575e06f888c' NOSUPERUSER CREATEDB NOCREATEROLE INHERIT LOGIN;
$
Jadi jelas, my_user1
tidak memiliki izin untuk membuat pengguna super. Tapi ini adalah pengguna yang saya beri tahu RDS adalah pengguna admin saya! Jika my_user1
tidak memiliki izin untuk membuat pengguna super, siapa yang punya? Dan bagaimana cara saya mendapatkan nama pengguna / kata sandi dari AWS?
amazon-web-services
postgresql
amazon-rds
Saqib Ali
sumber
sumber
Jawaban:
Mesin virtual RDS dikelola oleh Amazon. Dengan demikian, untuk mencegah Anda melanggar hal-hal seperti replikasi, pengguna Anda - bahkan pengguna root yang Anda atur saat Anda membuat instance - tidak akan memiliki hak superuser penuh.
http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.PostgreSQL.CommonDBATasks.html
sumber
pg_dump
. Apakah ada jalan keluar dengan rds on aws?grant
peran pemilik db untuk pengguna Anda.Jika Anda mendaftar izin Anda saat ini dengan
\du+
atau\dg+
, Anda akan melihat bahwa Anda bukan superuser tetapi hanya izin yang diizinkan Buat peran, Buat DB . Dengan demikian Anda tidak diizinkan untuk memberikan sendiri izin yang lebih tinggi dari yang Anda gunakan saat ini.Biasanya Anda tidak diberi izin root atau superuser di lingkungan apa pun yang dihosting. Saya sarankan Anda memutar instance EC2 kustom dan menginstal PostgreSQL secara lokal untuk kontrol penuh.
sumber