sql >> Databasteknik >  >> RDS >> Oracle

Hur kan jag hitta ÄGAREN till ett objekt i Oracle?

Du kan fråga vyn ALL_OBJECTS:

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

Så här hittar du synonymer:

select *
  from ALL_SYNONYMS
 where synonym_name = 'FOO'

Bara för att förtydliga om en användare användarens SQL-sats refererar till ett objektnamn utan schemakvalifikation (t.ex. "FOO"), Oracle FIRST kontrollerar användarens schema för ett objekt med det namnet (inklusive synonymer i användarens schema). Om Oracle inte kan lösa referensen från användarens schema, söker Oracle sedan efter en offentlig synonym.

Om du letar specifikt efter begränsningar för ett visst tabellnamn:

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

-- tillägg:

Om din användare beviljas åtkomst till DBA_-vyerna (t.ex. om din användare har beviljats ​​SELECT_CATALOG_ROLE), kan du ersätta 'DBA_ ' i stället för 'ALL_ ' i de föregående SQL-exemplen. ALL_x vyer visar bara objekt som du har fått privilegier. DBA_x vyer kommer att visa alla databasobjekt, oavsett om du har privilegier på dem eller inte.



  1. java.sql.SQLException:Åtkomst nekad för användaren '[email protected]'@'localhost' (med lösenord:JA)

  2. MySQL Preferred Engine – MyISAM eller InnoDB

  3. Hur konverterar jag från en pengadatatyp i SQL-server?

  4. Hur man väljer den sista posten från MySQL-tabellen med SQL-syntax