web-dev-qa-db-ja.com

Oracleデータベースのsysアカウントとシステムアカウントの違いは何ですか?

Sqlplusを使用して管理者としてOracleに接続するには、2つの方法があります。

  1. sqlplus sys as sysdba
  2. sqlplus system/manager

これらのアカウントはさまざまな目的で使用する必要があると思います。

これらの2つのスキーマはどのタスクを対象としていますか?いつどちらを使用すればよいですか?

40
Lazer

SYS

  • Oracleデータベースのインストール時に自動的に作成されます
  • DBAロールを自動的に付与
  • デフォルトのパスワードがあります:CHANGE_ON_INSTALL(必ず変更してください)
  • データベースデータディクショナリのベーステーブルとビューを所有します
  • SYSDBAとして接続したときのデフォルトのスキーマ

SYSスキーマのテーブルは、データベースによってのみ操作されます。ユーザーまたはデータベース管理者がこれらを変更することは絶対に避けてください。また、ユーザーSYSのスキーマにテーブルを作成しないでください。データベースユーザーは、SYSアカウントを使用してOracleデータベースに接続しないでください。

SYSTEM

  • Oracleデータベースのインストール時に自動的に作成されます
  • DBAロールを自動的に付与
  • デフォルトのパスワードがあります:MANAGER(必ず変更してください)
  • 管理情報を表示する追加のテーブルとビューを作成するために使用されます
  • さまざまなOracleデータベースオプションとツールで使用される内部テーブルとビューを作成するために使用されます。

管理者以外のユーザーが関心を持つテーブルを格納するためにSYSTEMスキーマを使用しないでください。

/ via

43
Eddie Awad

11g Oracle Documentation から:

SYSおよびSYSTEMユーザー

Oracle Databaseをインストールすると、次の管理ユーザー・アカウントが自動的に作成されます。どちらもインストール時に指定したパスワードを使用して作成され、どちらも自動的にDBAロールが付与されます。

  • SYS

    このアカウントは、すべての管理機能を実行できます。データベースデータディクショナリのすべての基本(基になる)テーブルとビューは、SYSスキーマに格納されます。これらのベーステーブルとビューは、Oracleデータベースの操作に不可欠です。データディクショナリの整合性を維持するために、SYSスキーマのテーブルはデータベースによってのみ操作されます。ユーザーまたはデータベース管理者が変更することはできません。 SYSスキーマにテーブルを作成しないでください。

    SYSユーザーにはSYSDBA権限が付与されます。これにより、ユーザーはバックアップやリカバリなどの高レベルの管理タスクを実行できます。

  • SYSTEM

    このアカウントは、以下を除くすべての管理機能を実行できます。

    • バックアップとリカバリ

    • データベースのアップグレード

    このアカウントは日常の管理タスクの実行に使用できますが、データベースアクティビティの監視を可能にするために、Oracleデータベースを管理するための名前付きユーザーアカウントを作成することを強くお勧めします。

SYSDBAおよびSYSOPERシステム権限

SYSDBAおよびSYSOPERは、データベースの作成、起動、シャットダウン、バックアップ、またはリカバリなどの高レベルの管理操作を実行するために必要な管理権限です。 SYSDBAシステム権限は、完全に権限を与えられたデータベース管理者向けであり、SYSOPERシステム権限により、ユーザーは基本的な操作タスクを実行できますが、ユーザーデータを確認することはできません。

SYSDBAおよびSYSOPERシステム権限により、データベースが開いていない場合でも、データベースインスタンスへのアクセスが許可されます。したがって、これらの権限の制御は完全にデータベース自体の外にあります。この制御により、これらの特権の1つを付与された管理者は、データベースインスタンスに接続してデータベースを起動できます。

SYSDBAおよびSYSOPER権限は、他の方法では権限を付与できない特定のデータベース操作を実行できる接続のタイプと考えることもできます。たとえば、SYSDBA権限がある場合、AS SYSDBAを使用してデータベースに接続できます。

SYSユーザーには、インストール時にSYSDBA権限が自動的に付与されます。ユーザーSYSとしてログインする場合は、SYSDBAまたはSYSOPERとしてデータベースに接続する必要があります。 SYSDBAユーザーとして接続すると、SYSDBA権限が呼び出されます。 SYSOPERとして接続すると、SYSOPER権限が呼び出されます。 Oracle Enterprise Manager Database Controlでは、SYSDBAまたはSYSOPERとして接続せずにユーザーSYSとしてログインすることはできません。

SYSDBA特権またはSYSOPER特権で接続する場合、通常はユーザー名に関連付けられているスキーマではなく、デフォルトのスキーマで接続します。 SYSDBAの場合、このスキーマはSYSです。 SYSOPERの場合、スキーマはPUBLICです。

21
Leigh Riffel

SYS(またはその他のSYSDBA接続)と他のすべてのユーザーとの主な違いの例: SYSは一貫した読み取りを実行できません 。これの1つの意味(他にもあります)は、古いexpユーティリティを使用してSYSとしてCONSISTENT = Yエクスポートを実行できないことです。

オラクルの従業員で専門家のトム・カイト氏は、 どちらか一方を使用することはめったにないはずです だと考えています。 SYSに関しては、上記の例が示すように動作が異なると彼は指摘していますが、より一般的にはOracleが「所有」していると考えています。スキーマを変更したり、スキーマに何かを追加したりして問題が発生した場合(データベースのアップグレードが失敗した場合など)は、Oracleサポートの答えは「そうすべきではなかった」と思われます。

9
Stephen Kendall

これは、ポスターが接続する方法は2つしかないと言っているように聞こえます。

「sqlplusを使用して管理者としてOracleに接続するには2つの方法があります。

sqlplus sys as sysdba
sqlplus system/manager"

管理者アカウントは、SYSDBA権限またはDBAロールのいずれかを持つ任意のOracleユーザーアカウントです。 SYSはSYSDBAの事前定義ユーザーであり、SYSTEMはDBAの事前定義ユーザーです。データベースにn個の管理者アカウントがある場合、管理者権限(定義上)で接続できるユーザーはn人います-2人だけではありません。

もう1つのポイントはSQL * Plusです。 OSプロンプトでsqlplus/sysdbaとして、OS認証を使用してSYSとして接続できます。 SQL * Plusを起動してから、CONNECT/AS SYSDBAを起動することもできます。 OSプロンプト、CONNECTステートメントでパスワードを指定するか、SQL * Plusにパスワードを要求させることができます。ネットサービス名を使用できます。 SYSTEMパスワードを変更できます(変更する必要があります)。等々。

ポスターが言ったことは、Oracleデータベースには少なくとも2つの管理者アカウントがあり、SYSTEMにデフォルトのパスワードがあり、OS認証が設定されている場合、これらは(多くの)2つの例であると思いますSYSおよびSYSTEMがSQL * Plusを使用してデータベースにログインする方法。

SYSとSYSTEMの違いについての質問は異なり、回答されています。

0
Lance Ashdown