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


39

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

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

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

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

回答:


43

SYS

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

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

SYSTEM

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

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

/ via


19
実際には、すべてのDBAはsqlplus / as sysdba日々の仕事に取り組んでいSYSTEMます。15年の間に、経験豊富なDBAの数十人と仕事をして、アカウントに悩む人に出会ったことはありません。
ガイウス

21

11グラムOracleドキュメント

SYSおよびSYSTEMユーザー

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

  • SYS

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

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

  • SYSTEM

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

    • バックアップと復元

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

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

SYSDBAおよびSYSOPERシステム権限

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

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

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です。


8

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

Oracleの従業員であり専門家のTom Kyteは、どちらも使用することはめったにないという意見です。SYSに関して、彼は、上記の例が示すように動作が異なることを指摘しますが、より一般的には、Oracle Corporationによって「所有」されていると考えています。いずれかのスキーマに変更を加えるか何かを追加し、問題が発生した場合(たとえば、データベースのアップグレードが失敗した場合)、Oracleサポートの答えは「それをしてはいけません」と思われます。


0

これは、接続する方法が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プロンプトでOS認証を使用してSYSとして接続できます:sqlplus / as sysdba。SQL * Plusを起動してから、CONNECT / AS SYSDBAを起動することもできます。OSプロンプト、CONNECTステートメントでパスワードを指定するか、SQL * Plusにパスワードを要求させることができます。ネットサービス名を使用できます。SYSTEMパスワードを変更できます(変更する必要があります)。等々。

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.