Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Tidak dapat membuat Oracle View mengakses objek skema lain, meskipun ada hibah

Sebagaimana dicatat dalam dokumentasi (penekanan ditambahkan):

Jika Anda hanya memiliki hak istimewa pilih pada tabel dasar yang diberikan melalui peran, maka Anda tidak dapat membuat tampilan yang menentangnya. Bahkan jika Anda beralih ke peran secara umum, Anda harus tetap memberikan hibah eksplisit di atas untuk setiap tampilan yang ingin Anda buat.

Saya membayangkan ini berkaitan dengan bagaimana peran bekerja. Dengan hibah langsung, Oracle tahu apakah Anda dapat melihat tabel di skema lain. Jika Anda memberikan pilihan pada tampilan Anda kepada orang lain, maka ketika mereka menanyakan tampilan, Oracle tahu bahwa rantai hak istimewa ada di sana. Jika hibah langsung Anda di atas meja dicabut maka ada mekanisme untuk membatalkan objek dependen. Tapi apa yang harus terjadi hak pilih peran di atas meja dicabut; atau akses Anda ke peran tersebut dicabut; atau hanya dalam sesi Anda sendiri, apa yang akan terjadi jika Anda menonaktifkan peran itu - apakah Anda masih dapat mengakses tampilan? Ini sedikit lebih rumit dari yang terlihat pada pandangan pertama.

Untungnya membuat tampilan harus relatif jarang dan dapat dikontrol. Kebanyakan orang yang mengakses tabel melalui peran tidak perlu membuat tampilan di atasnya (saya berasumsi!).

Pilihan lain di sini adalah membuat tampilan di ARIEL skema, lalu berikan hak istimewa ke APEX_ARIEL dan/atau peran. Apakah itu sesuai tergantung pada kueri tampilan nyata dan motivasi Anda untuk membuat tampilan.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menghasilkan UUID versi 4 (acak) di Oracle?

  2. Membuat urutan untuk bidang varchar2 di Oracle

  3. Hasil tak terduga dari pemetaan multiset di Oracle SQL

  4. Pustaka terkelola ODP.NET tidak menyelesaikan alias, tetapi pustaka 32-bit melakukannya

  5. Tidak dapat menonaktifkan perlindungan status sesi di Oracle APEX 18.1.0.00.45 untuk Tindakan Dinamis yang memperbarui Item Halaman