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 myapp
tidak memiliki masalah meminta myapp_production
database menambahkan & menghapus catatan. Saya ingin meltemi
juga dapat meminta database yang sama. Jadi, saya membuat peran rails
yang memiliki database dan membuat keduanya meltemi
dan myapp
anggota rails
. Tapi saya masih mendapatkan permission denied for relation
kesalahan. Meltemi
dapat melihat skema tetapi tidak dapat meminta DB.
Saya hanya melihat (dengan \dt
perintah) yaitu myapp
pemilik 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.
myapp
alih-alih dirails
atas? Karenamyapp
memiliki tabel (saya tidak pernah menentukan itu, migrasi harus ada). Bagaimanapun, akan lebih masuk akal jika saya berganti namamyapp
menjadimyapp_group
dan kemudian membuat pengguna barumyapp
yang aplikasi rel akan gunakan untuk terhubung ke DB. Buatmyapp
dan yang adameltemi
, kedua anggotamyapp_group
peran. Tetapi apa yang terjadi ketika saya menjalankan migrasi berikutnya. bukankah itu akan dimiliki denganmyapp
menciptakan kembali masalah lagi?!?