質問: 皆様おつかれさまです。 Takkoです。 現在OracleDB Master Bronzeの取得に向け学習しているものです。 ユーザ名SYSとユーザ名SYSTEMの出来ることの違いが良く分かりません。 > > http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19197-03/users_secure.htm > > 下記URLページの引用ですが、実際どのような使い方をするのですか? > > > **SYS** Oracleデータベースを作成すると、ユーザーSYSが自動的に作成され、DBAロールが付与されます。 データベースのデータ・ディクショナリのすべての実表およびビューは、スキーマSYSに格納されます。これらの実表およびビューは、Oracleデータベースの操作において必須です。データ・ディクショナリの整合性を保持するため、SYSスキーマの表は、データベースによってのみ操作されます。ユーザーまたはデータベース管理者はそれらを変更できません。また、必要に応じてデータ・ディクショナリ設定の記憶域パラメータは変更できますが、ユーザーSYSのスキーマ内に表は作成できません。 ほとんどのデータベース・ユーザーがSYSアカウントを使用してOracleデータベースに接続できないようにしてください。 **SYSTEM** Oracleデータベースを作成すると、ユーザーSYSTEMも自動的に作成され、DBAロールが付与されます。 SYSTEMユーザーは、管理情報を表示する特別な表やビュー、およびOracleデータベースの各種オプションやツールが使用する内部的な表およびビューを作成できます。SYSTEMスキーマを使用して、管理者ではないユーザーの表を格納しないでください。 Oracleデータベースをインストールするたびに、事前定義されたDBAロールが自動的に作成されます。このロールには、データベースのほとんどのシステム権限が含まれます。したがって、DBAロールは、実際のデータベース管理者にのみ付与する必要があります。DBAロールには、SYSDBAまたはSYSOPERシステム権限は含まれません。 以上、よろしくお願い致します。 追記 同じDBAロールを付与されているのにやれる事に違いが有るのはなぜですか。
回答: SYSもSYSTEMもほぼ全ての操作ができる権限を持つDBAロールが割り当てられていますが、DBAロールはあくまでDB上の権限です。 SYSにはそれに加えてSYSDBA権限というDBの起動停止や設定変更といった、DB自体を管理する権限も与えられています。 Oracle Database 11gがタグとして設定されていましたので、11gのドキュメントへリンクします。 Oracle® Database管理者ガイド 11gリリース2 (11.2)