sql >> データベース >  >> RDS >> Oracle

12cDBA_USERSの変更

    今日、私はユーザーの最終ログイン時刻を照会する機能を検討していました。 12cより前は、ログオントリガーを作成してログオン時間をテーブルに保存するか、監査を設定してログインの成功を監査する必要がありました。現在、Oracle 12cには、デフォルトで、誰かが最後にログインした時刻を判別する方法が含まれています。

     SQL> show userUSER is "SYS" SQL> select username、last_login from dba_users2 where last_login not null; USERNAME LAST_LOGIN ----------------------- -----------------------------------------------システム30- JUL-13 01.57.1​​9.000000000 PM -05:00PEASLAND 31-JUL-13 02.15.38.000000000 PM -05:00 

    ご覧のとおり、データベースにログインした2人のユーザーと、最後にログインした日時があります。私が気付いたのは、SYSユーザーとして接続しているにもかかわらず、この列にSYSが入力されていないことです。

    DBA_USERSビューを調べていると、LAST_LOGIN列に加えて、データディクショナリビューに3つの新しい列があり、そのうちの1つだけがORACLE_MAINTAINEDであることがわかります。ユーザーがOracleとそのさまざまなスクリプトによって作成された場合、ORACLE_MAINTAINED列はY値を示します。現在、私のテストデータベースには、そのようなユーザーは1人しかいません。

     SQL> oracle_maintained <>'Y'; USERNAME ------------------------------PEASLAND<であるdba_usersからユーザー名を選択します/ pre> 以前に読んだことがなかった新しい列の1つは、PROXY_ONLY_CONNECTユーザーでした。このビューでは、ユーザーがプロキシ接続を許可するかどうかを確認できます。プロキシ接続に慣れていない場合は、これが説明に役立つ場合があります。詳細については、ALTER USERのSQLリファレンスガイドにアクセスして、「proxy_clause」を検索してください。DBA_USERSの最後の新しい列はCOMMONです。この列の目的がわからなかったので、最初に立ち寄ったのはDBA_USERSのリファレンスガイドでした。列の説明は、「特定のユーザーが一般的であるかどうかを示します」です。わかりました…。それはどういう意味ですか?一般的なユーザーを定義するものは何ですか?テストデータベースにクエリを実行すると、次の出力が得られます。
     SQL> select username、common、oracle_maintained from dba_users; USERNAME COM O -------------------- ---------- --- -PEASLAND                       NO  NAUDSYS                         YES YGSMUSER                        YES YSYSKM                          YES YXS$NULL                        YES YOJVMSYS                        YES YORACLE_OCM                     YES YSYSDG                          YES YDIP                            YES YSYSBACKUP                      YES YGSMCATUSER                     YES YGSMADMIN_INTERNAL              YES YAPPQOSSYS                      YES YXDB                            YES YWMSYS                          YES YDBSNMP                         YES YANONYMOUS                      YES YSYS YES YSYSTEM YES YOUTLN YES Y 
    では、オラクルが管理している「一般的な」ユーザーですか?その場合、COMMON列とORACLE_MAINTAINED列は冗長ではありませんか? Oracleに同じことを意味する2つの列が含まれるとは思えません。そこで、答えを見つけるために検索を開始しました…管理者ガイドには、「一般ユーザーとローカルユーザー」というタイトルの小さなセクションがあります。 Commonユーザーは、Oracle 12cの新しいマルチテナントデータベースアーキテクチャのコンテナデータベースと、既存および将来のすべてのプラガブルデータベースに共通のユーザーです。それは今では理にかなっています。
    1. PostgreSQLデータベースの作成

    2. PostgreSQLデータベースを使用してWebアプリで完全なオフライン機能を使用するにはどうすればよいですか?

    3. postgresクレートを使用してクエリによって返されるオプションの値を処理するにはどうすればよいですか?

    4. varcharまたはintの主キーを使用してテーブルを設計する必要がありますか?