Saya agak bingung tentang pengaturan izin di PostgreSQL.
Saya memiliki peran ini:
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------+-----------
admin | Superuser, Create role, Create DB, Replication | {}
meltemi | Create role, Create DB | {rails}
rails | Create DB, Cannot login | {}
myapp | | {rails}
dan basis data:
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
---------------------+--------+----------+-------------+-------------+-------------------
myapp_production | rails | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
...
pengguna myapptidak memiliki masalah meminta myapp_productiondatabase menambahkan & menghapus catatan. Saya ingin meltemijuga dapat meminta database yang sama. Jadi, saya membuat peran railsyang memiliki database dan membuat keduanya meltemidan myappanggota rails. Tapi saya masih mendapatkan permission denied for relationkesalahan. Meltemidapat melihat skema tetapi tidak dapat meminta DB.
Saya hanya melihat (dengan \dtperintah) yaitu myapppemilik tabel:
List of relations
Schema | Name | Type | Owner
--------+-------------------+-------+-------
public | events | table | myapp
public | schema_migrations | table | myapp
...
public | users | table | myapp
...
Tabel dibuat melalui ORM (migrasi ActiveRecord Rails ').
Saya tahu otorisasi sangat berbeda di PostgreSQL (berbeda dengan MySQL & yang lain yang pernah saya gunakan). Bagaimana saya mengatur database saya sehingga pengguna yang berbeda dapat mengaksesnya. Beberapa harus dapat CRUD tetapi yang lain hanya dapat membaca, dll ...
Terima kasih atas bantuannya. Maaf, saya tahu ini adalah pertanyaan yang sangat mendasar tetapi saya belum dapat menemukan jawabannya sendiri.
myappalih-alih dirailsatas? Karenamyappmemiliki tabel (saya tidak pernah menentukan itu, migrasi harus ada). Bagaimanapun, akan lebih masuk akal jika saya berganti namamyappmenjadimyapp_groupdan kemudian membuat pengguna barumyappyang aplikasi rel akan gunakan untuk terhubung ke DB. Buatmyappdan yang adameltemi, kedua anggotamyapp_groupperan. Tetapi apa yang terjadi ketika saya menjalankan migrasi berikutnya. bukankah itu akan dimiliki denganmyappmenciptakan kembali masalah lagi?!?