sql >> Database >  >> RDS >> Oracle

Hoe kan ik de EIGENAAR van een object in Oracle vinden?

U kunt de weergave ALL_OBJECTS opvragen:

select owner
     , object_name
     , object_type
  from ALL_OBJECTS
 where object_name = 'FOO'

Om synoniemen te vinden:

select *
  from ALL_SYNONYMS
 where synonym_name = 'FOO'

Ter verduidelijking, als een gebruiker SQL-instructie van de gebruiker verwijst naar een objectnaam zonder schemakwalificatie (bijv. 'FOO'), Oracle FIRST controleert het gebruikersschema op een object met die naam (inclusief synoniemen in het schema van die gebruiker). Als Oracle de verwijzing niet uit het schema van de gebruiker kan halen, controleert Oracle op een openbaar synoniem.

Als u specifiek op zoek bent naar beperkingen voor een bepaalde table_name:

select c.*
  from all_constraints c 
 where c.table_name = 'FOO'
 union all
select cs.*
  from all_constraints cs
  join all_synonyms s 
    on (s.table_name = cs.table_name
     and s.table_owner = cs.owner 
     and s.synonym_name = 'FOO'
       )

HTH

-- toevoeging:

Als uw gebruiker toegang heeft gekregen tot de DBA_-weergaven (bijvoorbeeld als uw gebruiker SELECT_CATALOG_ROLE heeft gekregen), kunt u 'DBA_ vervangen ' in plaats van 'ALL_ ' in de voorgaande SQL-voorbeelden. De ALL_x views tonen alleen objecten waaraan u privileges heeft gekregen. De DBA_x views zullen alle database-objecten tonen, of u er rechten voor hebt of niet.



  1. BOB SQL-state 00000 maar nog steeds fout?

  2. Optimale chunksize-parameter in pandas.DataFrame.to_sql

  3. Waardeteruggave wanneer geen rijen in PDO

  4. ROLLBACK-gebeurtenistriggers in postgresql