sql >> Databasteknik >  >> RDS >> Oracle

Förbigå tabellbehörighet och MED BETYDNINGSALTERNATIV genom att skapa vyer

Det du beskrev fungerar inte. Som användare A:

create table t (id number);

Table T created.

grant select on t to b;

Grant succeeded.

Som användare B:

create view v as select * from a.t;

View V created.

grant select on v to c;

SQL Error: ORA-01720: grant option does not exist for 'A.T'
01720. 00000 -  "grant option does not exist for '%s.%s'"
*Cause:    A grant was being performed on a view or a view was being replaced
           and the grant option was not present for an underlying object.
*Action:   Obtain the grant option on all underlying objects of the view or
           revoke existing grants on the view.

Detta nämns i dokumentationen :

Till och med grant any object privilege privilegiet förbigår inte detta; även om det måste finnas något (kraftigt) privilegium som gör som en full DBA kan gör grant select on b.v to c .




  1. När ska man använda mysql_real_escape_string()

  2. django.db.utils.ProgrammingError:relation app_user existerar inte under manage.py-testet

  3. Skapa och ta bort en PostgreSQL-databas på Ubuntu 16.04

  4. UPDATE-sats:omvärdera underfrågan efter varje SET