Oracle
 sql >> база данни >  >> RDS >> Oracle

Не може да се създаде Oracle View с достъп до обекти на други схеми, въпреки разрешенията

Както е отбелязано в документацията (курсивът е добавен):

Ако имате само привилегия за избор на основната таблица, предоставена чрез роля, тогава не можете да създадете изглед срещу нея. Дори ако преминете към роля като цяло, ще трябва да запазите изрично разрешение отгоре за всички изгледи, които искате да създадете.

Предполагам, че това е свързано с това как работят ролите. С директно разрешение Oracle знае дали можете да видите таблицата в другата схема. Ако предоставите избор на вашия изглед на някой друг, тогава, когато те заявят изгледа, Oracle знае, че веригата от привилегии е там. Ако директното ви предоставяне на масата бъде отменено, тогава има механизми за обезсилване на зависимите обекти. Но какво трябва да се случи, привилегията за избор на ролята на масата е отменена; или достъпът ви до ролята е отменен; или само в рамките на вашата собствена сесия, какво трябва да се случи, ако деактивирате тази роля - можете ли все още да имате достъп до изгледа? Малко по-сложно е, отколкото изглежда на пръв поглед.

За щастие създаването на изгледи трябва да бъде относително рядко и контролируемо. Повечето хора, които имат достъп до таблицата чрез ролята, няма да трябва да създават изглед върху нея (предполагам!).

Друга опция тук е да създадете изгледа в ARIEL схема и след това дайте привилегии на APEX_ARIEL и/или роля. Дали това е подходящо зависи от вашата реална заявка за изглед и мотивацията ви да създадете изгледа.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dynamic Select SQL изрази с MyBatis

  2. Как да изчистите всички кеширани елементи в Oracle

  3. Oracle Form замръзва след конфигуриране на WEBUTIL

  4. Няма отговор на заявка за актуализиране в Oracle

  5. как да използвате XMLImporter и FndXdfCmp в Oracle EBS