sql >> Databáze >  >> RDS >> Oracle

12c Změny DBA_USERS

Dnes jsem se díval na možnost dotazu na čas posledního přihlášení uživatele. Před verzí 12c bylo nutné vytvořit spouštěč přihlášení k uložení času přihlášení do tabulky nebo nastavit audit a audit úspěšných přihlášení. Nyní Oracle 12c ve výchozím nastavení obsahuje způsob, jak určit, kdy se někdo naposledy přihlásil.

SQL> zobrazit userUSER je "SYS"SQL> vyberte uživatelské jméno, last_login z dba_users2  kde last_login není null;USERNAME                       LAST_LOGIN----------------------- ------- ----------------------------------------SYSTÉM                         30- JUL-13 01.57.19.000000000 PM -05:00 PEASLAND                       31. JUL-13 02.15.38.000000000 PM -05:00

Jak můžete vidět, mám dva uživatele, kteří se přihlásili do databáze, a datum/čas, kdy se naposledy přihlásili. Jedna věc, kterou jsem si všiml, je, že i když jsem připojen jako uživatel SYS, tento sloupec není pro SYS vyplněn.

Při zkoumání pohledu DBA_USERS vidím, že kromě sloupce LAST_LOGIN jsou v pohledu Data Dictionary také 3 další nové sloupce, z nichž pouze jeden jsem dříve četl, ORACLE_MAINTAINED. Sloupec ORACLE_MAINTAINED bude udávat hodnotu Y, pokud byl uživatel vytvořen společností Oracle a jejími různými skripty. V současné době mám v testovací databázi pouze jednoho takového uživatele.

SQL> vyberte uživatelské jméno z dba_users, kde oracle_maintained<>'Y';USERNAME------------------------------PEASLAND Jeden nový sloupec, o kterém jsem předtím nečetl, byl uživatel PROXY_ONLY_CONNECT. Toto zobrazení vám umožňuje zjistit, zda uživatel povolí připojení proxy. V případě, že nejste obeznámeni s připojením proxy, může to pomoci vysvětlit to. Další informace naleznete v Referenční příručce SQL pro ALTER USER a vyhledejte „proxy_clause“. Poslední nový sloupec v DBA_USERS je COMMON. Neměl jsem ponětí, k čemu tento sloupec byl, takže mou první zastávkou byla Referenční příručka pro DBA_USERS. Popis sloupce je „Ukazuje, zda je daný uživatel běžný“. Dobře… co to znamená? Co definuje běžného uživatele? Pokud se dotazuji na testovací databázi, dostanu následující výstup:
SQL> select username,common,oracle_maintained from dba_users;USERNAME                       COM O--------------------- -------------- --- -peasland Ne Naudsys ANO ygsmuser ano ysyskm ano yxs $ null ano jojvmsys ano yoracle_ocm ano ysysdg ano ydip ano ysysbatup ano ywms as anonys anonys anonys anonys anonys as anonys YSYS                            ANO YSYSTEM                         ANO YOUTLN                          ANO Y
Je tedy „běžný“ uživatel tím, který je spravován společností Oracle? Pokud ano, nejsou sloupce COMMON a ORACLE_MAINTAINED nadbytečné? Pochybuji, že by Oracle zahrnoval dva sloupce, které znamenají totéž. Pustil jsem se tedy do hledání, abych našel odpověď…V Příručce administrátora je malá sekce s názvem „Běžní uživatelé a místní uživatelé“. Společný uživatel je ten, který je společný pro kontejnerovou databázi a všechny stávající i budoucí připojitelné databáze v nové architektuře databáze Oracle 12c s více nájemci. To teď dává smysl.
  1. Jak vyplnit díry v polích automatického přírůstku?

  2. Pomocí T-SQL vraťte n-tý prvek s oddělovači z řetězce

  3. Jak opravit „Přidružená funkce oddílu generuje více oddílů, než kolik je skupin souborů uvedených ve schématu“ Msg 7707 v SQL Server

  4. Co je CHAR_LENGTH() v MySQL?