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 YJe 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.