PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Apa sebenarnya yang dilakukan HIBAH PENGGUNAAN PADA SKEMA?

HIBAH s pada objek yang berbeda terpisah. HIBAH ing pada database tidak GRANT hak atas skema di dalamnya. Demikian pula, GRANT menggunakan skema tidak memberikan hak pada tabel di dalamnya.

Jika Anda memiliki hak untuk SELECT dari tabel, tetapi tidak tepat untuk melihatnya dalam skema yang memuatnya maka Anda tidak dapat mengakses tabel tersebut.

Tes hak dilakukan secara berurutan:

Do you have `USAGE` on the schema? 
    No:  Reject access. 
    Yes: Do you also have the appropriate rights on the table? 
        No:  Reject access. 
        Yes: Check column privileges.

Kebingungan Anda mungkin timbul dari fakta bahwa publik skema memiliki default GRANT semua hak atas peran publik , di mana setiap pengguna/grup adalah anggotanya. Jadi semua orang sudah menggunakan skema itu.

Frasa:

(dengan asumsi bahwa persyaratan hak istimewa objek sendiri juga terpenuhi)

Mengatakan bahwa Anda harus memiliki USAGE pada skema untuk menggunakan objek di dalamnya, tetapi memiliki USAGE pada skema saja tidak cukup untuk menggunakan objek dalam skema, Anda juga harus memiliki hak atas objek itu sendiri.

Ini seperti pohon direktori. Jika Anda membuat direktori somedir dengan file somefile di dalamnya kemudian atur sehingga hanya pengguna Anda sendiri yang dapat mengakses direktori atau file (mode rwx-------code> pada direktori, mode rw------- pada file) maka tidak ada orang lain yang dapat membuat daftar direktori untuk melihat bahwa file tersebut ada.

Jika Anda memberikan hak baca dunia pada file (mode rw-r--r-- ) tetapi tidak mengubah izin direktori, tidak ada bedanya. Tidak ada yang bisa melihat file untuk membacanya, karena mereka tidak memiliki hak untuk membuat daftar direktori.

Jika Anda malah menyetel rwx-r-xr-x pada direktori, menyetelnya agar orang dapat membuat daftar dan melintasi direktori tetapi tidak mengubah izin file, orang dapat mendaftar file tetapi tidak dapat membaca karena mereka tidak memiliki akses ke file tersebut.

Anda perlu mengatur keduanya izin bagi orang untuk benar-benar dapat melihat file tersebut.

Hal yang sama di Hal. Anda memerlukan keduanya skema USAGE hak dan hak objek untuk melakukan tindakan pada objek, seperti SELECT dari sebuah tabel.

(Analoginya sedikit menurun karena PostgreSQL belum memiliki keamanan tingkat baris, sehingga pengguna masih dapat "melihat" bahwa tabel ada dalam skema dengan SELECT ing dari pg_class secara langsung. Namun, mereka tidak dapat berinteraksi dengannya, jadi hanya bagian "daftar" yang tidak persis sama.)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memperbaiki Postgresql setelah memutakhirkan ke OSX 10.7 Lion

  2. Membuat indeks unik parsial dengan sqlalchemy di Postgres

  3. Sisipan multi-baris dengan pg-promise

  4. Impor dump MySQL ke database PostgreSQL

  5. PostgreSQL :berikan string hingga saat ini DD/MM/YYYY