Mottchanさんの投稿一覧
解説では、
「・DML文は1つの文で1つのトランザクションになる
DML文は1つ以上の文のまとまりで1つのトランザクションになります。」
となるので、ばつとなっています。
DML文は1つ以上の文のまとまりで1つのトランザクションが正解であれば
DML文は1つの文で1つのトランザクションになる。も正解では無いでしょうか。
1つ以上の文のまとまりという言葉が理解できていないかもしれません。
誰かわかる人教えてください。
・ALL_TABLESビューにOWNER列は無い
所有者を示すOWNER列が無いのはUSER_TABLESビューなので、誤りです。
解説
OWNER列とはセグメント所有者のユーザー名が入る列なので、
USER_TABLESで参照したときにはそのUSERがOWNERであるため、OWNER列が要らない。ということになる。
・データ・ディクショナリの所有者はSYSTEMユーザーである
データ・ディクショナリはSYSユーザーによって所有され、SYSTEM表領域(管理情報が格納されている論理的な記憶領域)に格納されているので、誤りです。
→SYSTEMユーザーとSYSユーザーは異なる。
ORACLE公式ドキュメントより
7.3.1 SYSおよびSYSTEMユーザー
SYS
このアカウントでは、すべての管理機能を実行できます。データベースのデータ・ディクショナリ用のすべての実表およびベース・ビューはSYSスキーマに保存されます。これらの実表およびベース・ビューはOracle Databaseを操作する際に重要となります。データ・ディクショナリの整合性を保持するには、SYSスキーマ内の表をデータベースのみで操作します。すべてのユーザーまたはデータベース管理者による変更は絶対に行わないでください。また、SYSスキーマ内に表を作成しないでください。
SYSユーザーにはSYSDBA権限が付与され、この権限によりバックアップやリカバリのような高水準な管理タスクを実行できます。
SYSTEM
このアカウントは、次の例外を除いたすべての管理機能を実行します。
・バックアップとリカバリ
・データベースのアップグレード
このアカウントを使用して日常的な管理タスクを実行できますが、Oracle Databaseを管理するための名前付きユーザー・アカウントを作成して、データベース・アクティビティを監視できるようにすることをお薦めします。
SYSユーザーとSYSTEMユーザーの違いは、SYSDBA権限があるかないかの違いである。
ORACLE公式ドキュメントより
7.3.2 SYSDBAおよびSYSOPERシステム権限
SYSDBAおよびSYSOPERはデータベースの作成、起動、停止、バックアップまたはリカバリなどの高度な管理操作を実行するために必要な管理権限です。SYSDBAシステム権限は、すべての権限を持つデータベース管理者用、SYSOPERシステム権限は、基本的な運用タスクを実行するがユーザー・データを表示する権限は持たないユーザー用です。
また、
ORACLE公式ドキュメントより、
SYS(データ・ディクショナリの所有者)
データ・ディクショナリのすべての実表とユーザー・アクセス可能ビューは、Oracle DatabaseユーザーSYSが所有しています。したがって、Oracle Databaseユーザーは、SYSスキーマに含まれている行またはスキーマ・オブジェクトを決して変更(UPDATE、DELETEまたはINSERT)しないでください。そのような操作により、データ整合性が損われることがあります。セキュリティ管理者は、このアカウントを厳しく管理する必要があります。
となっているので、SYSDBA権限はDBの中でもかなり重要な権限となっている。