sql >> Database >  >> RDS >> Oracle

12c DBA_USERS Wijzigingen

Vandaag keek ik naar de mogelijkheid om de laatste inlogtijd van een gebruiker op te vragen. Vóór 12c moest men een aanmeldingstrigger maken om de aanmeldingstijd in een tabel op te slaan of auditing instellen en succesvolle aanmeldingen controleren. Oracle 12c bevat nu standaard een manier om te bepalen wanneer iemand voor het laatst heeft ingelogd.

SQL> show userUSER is "SYS"SQL> selecteer gebruikersnaam,last_login van dba_users2  waar last_login niet null is;USERNAME                       LAST_LOGIN------------------- ------- ----------------------------------------SYSTEEM                         30- JUL-13 01.57.19.000000000 PM -05:00PEASLAND                       31-JUL-13 02.15.38.000000000 PM -05:00

Zoals je kunt zien, heb ik twee gebruikers die zich hebben aangemeld bij de database en de datum/tijd waarop ze voor het laatst zijn ingelogd. Een ding dat me opviel, is dat hoewel ik verbonden ben als de SYS-gebruiker, deze kolom niet is gevuld voor SYS.

Tijdens het onderzoeken van de DBA_USERS-weergave, zie ik dat er naast de LAST_LOGIN-kolom ook 3 andere nieuwe kolommen zijn voor de Data Dictionary-weergave, waarvan ik er slechts één eerder over had gelezen, ORACLE_MAINTAINED. De kolom ORACLE_MAINTAINED geeft een Y-waarde aan als de gebruiker is gemaakt door Oracle en zijn verschillende scripts. Momenteel heb ik in mijn testdatabase maar één zo'n gebruiker.

SQL> selecteer gebruikersnaam uit dba_users waar oracle_maintained<>'Y';USERNAME------------------------------PEASLAND
Een nieuwe kolom waar ik nog niet eerder over had gelezen, was de PROXY_ONLY_CONNECT-gebruiker. In deze weergave kunt u zien of een gebruiker proxyverbindingen toestaat. Als u niet bekend bent met proxyverbindingen, kan dit helpen om het te verklaren. Ga voor meer informatie naar de SQL-referentiegids voor ALTER USER en zoek naar 'proxy_clause'. De laatste nieuwe kolom in DBA_USERS is COMMON. Ik had geen idee waar deze kolom voor was, dus mijn eerste stop was de referentiegids voor DBA_USERS. De beschrijving voor de kolom is "Geeft aan of een bepaalde gebruiker gebruikelijk is". Oké... wat betekent dat? Wat definieert een gewone gebruiker? Als ik mijn testdatabase opvraag, krijg ik de volgende uitvoer:
SQL> select username,common,oracle_maintained from dba_users;USERNAME                       COM O-------------------- ---------- --- -Peasland NEE NAUDSYS JA YGSMUSER JA YSYSKM JA YXS $ NULL JOJVMSYS JA YORACLE_OCM JA YSYSDG JA YDIP JA YSYSBACKUP JA YGSMCATUSER JA YGSMIN_TERNERTERNAL JA YAPSYS JA YXDB JA YWMSY JA YSSYS YESY JA YDSNMS JA YANIMOS JA YSIMOS JA YSIMOS JA YSIMOS JA YSIMOS JA YSIMOS JA YSIMOS JA YANIMOS JA YANIMOS JA YANIMOS JA YANIMOS JA YANIMOS JA YANIMOS JA YANIMOS JA YANIMOS JA YANIMIS YSYS                            JA YSYSTEEM                         JA YOUTLN                        >  YES Y
  1. Onmiddellijke bestandsinitialisatie:impact tijdens installatie

  2. Gebruik van SqlParameter in SQL LIKE-clausule werkt niet

  3. PostgreSQL - haal de rij op met de maximale waarde voor een kolom

  4. De door de server ondersteunde sorteringen vinden in MySQL