OracleのDBA_*ビューには、所有権に関係なく、データベース内のすべてのオブジェクトに関する情報が含まれています。デフォルトでは、管理者アカウントのみがこれらのビューにアクセスできます。これはセキュリティ上の理由から行われます。 「通常の」ユーザーがこれらのビューにアクセスできるようにするには、ビューごとに直接、またはSELECT ANY TABLE(非推奨)などのシステム権限を介してグローバルに、これらのビューへのアクセスを許可する必要があります。ユーザーが本当に必要とする実際のDBA_ビューへのアクセスを許可することをお勧めします。通常、ALL_ビューは、一般的なユーザーに必要なすべての情報を提供します。
現在のユーザーセッションを終了して別のユーザーとして接続するには、次のコマンドを使用します。
CONNECT sys/pw as sysdba
編集:
オブジェクトの所有者は、 GRANTコマンド:
GRANT SELECT ON dba_users TO nonsys;
ユーザーSYSとして実行すると、dba_usersビューへの選択アクセスがユーザーnonsysに付与されます。
付与が実行されると、ユーザーnonsysはSELECTステートメントを介してこのビューから選択できるようになります。
SELECT * FROM dba_users;