sql >> Database teknologi >  >> RDS >> Oracle

12c DBA_USERS Ændringer

I dag kiggede jeg på muligheden for at forespørge på en brugers sidste login-tidspunkt. Før 12c skulle man oprette en logon-trigger for at gemme logon-tiden i en tabel eller opsætte revision og auditering af succesfulde logins. Nu indeholder Oracle 12c som standard en måde at bestemme, hvornår nogen sidst loggede på.

SQL> vis brugerBRUGER er "SYS"SQL> vælg brugernavn, sidste_login fra dba_users2  hvor sidste_login ikke er null;BRUGERNAVN                       SIDSTE_LOGIN----------------------- ------- ------------------------------------------SYSTEM                         30- JUL-13 01.57.19.000000000 PM -05:00PEASLAND                       31-JUL-13 02.15.38.000000000 PM -05:00

Som du kan se, har jeg to brugere, der er logget ind i databasen og den dato/klokkeslæt, de sidst loggede ind. En ting, jeg bemærkede, er, at selvom jeg er tilsluttet som SYS-bruger, er denne kolonne ikke udfyldt for SYS.

Mens jeg undersøgte DBA_USERS-visningen, ser jeg, at der udover LAST_LOGIN-kolonnen også er 3 andre nye kolonner til Data Dictionary-visningen, hvoraf kun én jeg tidligere havde læst om, ORACLE_MAINTAINED. Kolonnen ORACLE_MAINTAINED vil angive en Y-værdi, hvis brugeren er oprettet af Oracle og dets forskellige scripts. I øjeblikket i min testdatabase har jeg kun én sådan bruger.

SQL> vælg brugernavn fra dba_users hvor oracle_maintained<>'Y';USERNAME------------------------------------PEASLAND
En ny kolonne, som jeg ikke tidligere havde læst om, var PROXY_ONLY_CONNECT-brugeren. Denne visning lader dig se, om en bruger vil tillade proxyforbindelser. Hvis du ikke er bekendt med proxyforbindelser, kan dette hjælpe med at forklare det. Du kan få flere oplysninger ved at besøge SQL Reference Guide for ALTER USER og søge efter "proxy_clause". Den sidste nye kolonne i DBA_USERS er COMMON. Jeg havde ingen anelse om, hvad denne kolonne var til, så mit første stop var Reference Guide for DBA_USERS. Beskrivelsen for kolonnen er "Angiver om en given bruger er almindelig". Ok... hvad betyder det? Hvad definerer en almindelig bruger? Hvis jeg forespørger i min testdatabase, får jeg følgende output:
SQL> vælg brugernavn,common,oracle_maintained fra dba_users;USERNAME                       COM O-------------------- -| YSYS                            JA YSYSTEM                         JA YOUTLN                          JA Y Så er en "almindelig" bruger en, der vedligeholdes af Oracle? Hvis ja, er kolonnerne COMMON og ORACLE_MAINTAINED ikke overflødige? Jeg tvivler på, at Oracle ville inkludere to kolonner, der betyder det samme. Så jeg gik i gang med en søgning for at finde svaret ... I administratorvejledningen er der et lille afsnit med titlen "Almindelige brugere og lokale brugere". Den fælles bruger er en, der er fælles for en containerdatabase og alle eksisterende og fremtidige pluggbare databaser i Oracle 12c's nye multi-tenant-databasearkitektur. Det giver mening nu. 
  1. Oracle indsæt, hvis række ikke eksisterer

  2. Konfiguration af databasemailmeddelelser i MS SQL Server

  3. LTRIM() Funktion i Oracle

  4. Indsæt et billede i postgresql database