そういうのがいいブログ

SIerで働く30代サラリーマンSEがインフラエンジニアに憧れてLinux・クラウド・AWSの勉強をするブログ

Oracleの管理者SYSとSYSTEMの違い【as sysdba有無・ログインできる/できない】

※[PR]当ブログの記事の中にはプロモーションが含まれています。

Oracleの管理者ユーザーSYSとSYSTEMの違い【as sysdbaの有無によって、ログインできる/ログインできないが変わる】

ラクルに「SYSでログインできない」「SYSTEMでログインできない」とハマってしまったことがありませんか? 同じようなラクル管理者ユーザーでありながら、権限やログインのしかたの違いをきちんと知りたい、と考えていませんか?

あと、オラクルデータベースについてのおススメの勉強法があれば知りたい、と考えていませんか?

SYSユーザの方がより強い権限を持ち、as sysdbaをつけてログインする。
というのがポイントです。

本記事では、下記の内容を解説します。

  • ラクルの管理者、SYSとSYSTEMの違い(権限)
  • SYSとSYSTEMのログインするときの違い(as sysdba)
  • ラクルデータベースのおススメの勉強法の紹介

この記事を書いている私は、某SIerに勤務しながら、入社当時から10年以上、オラクルデータベースを使ったシステムの開発に関わっていますので、記事の信頼性担保に繋がると思います。

SYSユーザーとSYSTEMユーザーの違い

データディクショナリの「DBA_SYS_PRIVS」「DBA_ROLE_PRIVS」で、
それぞれのユーザーに付与されているシステム権限を確認してみます。

SYSユーザーの権限を DBA_SYS_PRIVS で確認

SQL> select grantee, privilege from dba_sys_privs where grantee='SYS';

GRANTEE  PRIVILEGE
-------- ----------------------------------------
SYS      CREATE ANALYTIC VIEW
SYS      ALTER ANY CUBE BUILD PROCESS
SYS      CREATE LOCKDOWN PROFILE
SYS      INHERIT ANY PRIVILEGES
SYS      EM EXPRESS CONNECT
SYS      DROP ANY SQL TRANSLATION PROFILE
SYS      UPDATE ANY CUBE DIMENSION
SYS      DELETE ANY CUBE DIMENSION
SYS      SELECT ANY MINING MODEL
SYS      ALTER ANY ASSEMBLY
SYS      MANAGE FILE GROUP

GRANTEE  PRIVILEGE
-------- ----------------------------------------
SYS      EXECUTE ANY RULE
SYS      GRANT ANY OBJECT PRIVILEGE
SYS      DEBUG CONNECT ANY
SYS      CREATE ANY CONTEXT
SYS      CREATE DIMENSION
SYS      UNDER ANY TABLE
SYS      GLOBAL QUERY REWRITE
SYS      QUERY REWRITE
SYS      DROP ANY INDEXTYPE
SYS      ALTER ANY OPERATOR
SYS      ALTER ANY LIBRARY

GRANTEE  PRIVILEGE
-------- ----------------------------------------
SYS      DROP ANY TYPE
SYS      DROP ANY DIRECTORY
SYS      DROP ANY TRIGGER
SYS      AUDIT ANY
SYS      DROP PUBLIC SYNONYM
SYS      DROP ANY SYNONYM
SYS      CREATE ANY TABLE
SYS      CREATE TABLE
SYS      ALTER USER
SYS      CREATE TABLESPACE
SYS      ALTER SYSTEM

GRANTEE  PRIVILEGE
-------- ----------------------------------------
SYS      CREATE HIERARCHY
SYS      ALTER ANY ATTRIBUTE DIMENSION
SYS      ALTER ANY SQL TRANSLATION PROFILE
SYS      CREATE CUBE BUILD PROCESS
SYS      CREATE MEASURE FOLDER
SYS      DROP ANY CUBE
SYS      CREATE ANY MINING MODEL
SYS      DROP ANY ASSEMBLY
SYS      SELECT ANY TRANSACTION
SYS      CREATE JOB
SYS      DEBUG ANY PROCEDURE

GRANTEE  PRIVILEGE
-------- ----------------------------------------
SYS      DROP ANY CONTEXT
SYS      DROP ANY DIMENSION
SYS      DROP ANY LIBRARY
SYS      CREATE ANY MATERIALIZED VIEW
SYS      GRANT ANY PRIVILEGE
SYS      ALTER PROFILE
SYS      CREATE PROFILE
SYS      CREATE PUBLIC DATABASE LINK
SYS      CREATE DATABASE LINK
SYS      ALTER ANY SEQUENCE
SYS      DROP ANY VIEW

GRANTEE  PRIVILEGE
-------- ----------------------------------------
SYS      DROP ANY INDEX
SYS      DELETE ANY TABLE
SYS      LOCK ANY TABLE
SYS      ALTER ROLLBACK SEGMENT
SYS      CREATE USER
SYS      ALTER SESSION
SYS      DROP ANY ANALYTIC VIEW
SYS      CREATE ANY ANALYTIC VIEW
SYS      DROP ANY HIERARCHY
SYS      CREATE ATTRIBUTE DIMENSION
SYS      ALTER ANY MEASURE FOLDER

GRANTEE  PRIVILEGE
-------- ----------------------------------------
SYS      LOGMINING
SYS      CREATE ANY CREDENTIAL
SYS      INSERT ANY MEASURE FOLDER
SYS      DROP ANY MEASURE FOLDER
SYS      CREATE ANY CUBE
SYS      DROP ANY EDITION
SYS      MANAGE ANY FILE GROUP
SYS      MANAGE SCHEDULER
SYS      EXECUTE ANY CLASS
SYS      EXPORT FULL DATABASE
SYS      CREATE ANY RULE SET

GRANTEE  PRIVILEGE
-------- ----------------------------------------
SYS      DROP ANY EVALUATION CONTEXT
SYS      CREATE ANY EVALUATION CONTEXT
SYS      CREATE EVALUATION CONTEXT
SYS      DEQUEUE ANY QUEUE
SYS      ENQUEUE ANY QUEUE
SYS      CREATE TYPE
SYS      CREATE ANY DIRECTORY
SYS      ALTER RESOURCE COST
SYS      DROP PROFILE
SYS      CREATE ANY PROCEDURE
SYS      DROP ANY ROLE

GRANTEE  PRIVILEGE
-------- ----------------------------------------
SYS      SELECT ANY SEQUENCE
SYS      CREATE ANY SYNONYM
SYS      UPDATE ANY TABLE
SYS      BECOME USER
SYS      DROP ANY ATTRIBUTE DIMENSION
SYS      SELECT ANY CUBE BUILD PROCESS
SYS      CREATE PLUGGABLE DATABASE
SYS      SELECT ANY CUBE DIMENSION
SYS      DROP ANY MINING MODEL
SYS      READ ANY FILE GROUP
SYS      CREATE ANY SQL PROFILE

GRANTEE  PRIVILEGE
-------- ----------------------------------------
SYS      ADMINISTER SQL TUNING SET
SYS      DROP ANY SQL PROFILE
SYS      EXECUTE ANY PROGRAM
SYS      ADVISOR
SYS      CREATE RULE
SYS      ALTER ANY DIMENSION
SYS      ALTER ANY INDEXTYPE
SYS      CREATE OPERATOR
SYS      EXECUTE ANY LIBRARY
SYS      CREATE ANY LIBRARY
SYS      CREATE LIBRARY

GRANTEE  PRIVILEGE
-------- ----------------------------------------
SYS      ALTER ANY TYPE
SYS      ALTER ANY MATERIALIZED VIEW
SYS      EXECUTE ANY PROCEDURE
SYS      CREATE VIEW
SYS      CREATE PUBLIC SYNONYM
SYS      INSERT ANY TABLE
SYS      RESTRICTED SESSION
SYS      CREATE ANY HIERARCHY
SYS      CREATE ANY ATTRIBUTE DIMENSION
SYS      USE ANY JOB RESOURCE
SYS      INSERT ANY CUBE DIMENSION

GRANTEE  PRIVILEGE
-------- ----------------------------------------
SYS      COMMENT ANY MINING MODEL
SYS      CREATE ANY ASSEMBLY
SYS      ALTER ANY EDITION
SYS      DROP ANY RULE SET
SYS      ALTER ANY EVALUATION CONTEXT
SYS      FLASHBACK ANY TABLE
SYS      ADMINISTER RESOURCE MANAGER
SYS      CREATE INDEXTYPE
SYS      DROP ANY OPERATOR
SYS      FORCE TRANSACTION
SYS      ALTER DATABASE

GRANTEE  PRIVILEGE
-------- ----------------------------------------
SYS      CREATE ROLE
SYS      CREATE ANY SEQUENCE
SYS      ALTER ANY INDEX
SYS      CREATE CLUSTER
SYS      SELECT ANY TABLE
SYS      COMMENT ANY TABLE
SYS      BACKUP ANY TABLE
SYS      ALTER ANY TABLE
SYS      DROP USER
SYS      ALTER TABLESPACE
SYS      AUDIT SYSTEM

GRANTEE  PRIVILEGE
-------- ----------------------------------------
SYS      READ ANY TABLE
SYS      CREATE CREDENTIAL
SYS      USE ANY SQL TRANSLATION PROFILE
SYS      CREATE SQL TRANSLATION PROFILE
SYS      ADMINISTER SQL MANAGEMENT OBJECT
SYS      UPDATE ANY CUBE BUILD PROCESS
SYS      CREATE CUBE
SYS      EXECUTE ASSEMBLY
SYS      ALTER ANY SQL PROFILE
SYS      ALTER ANY RULE
SYS      RESUMABLE

GRANTEE  PRIVILEGE
-------- ----------------------------------------
SYS      ADMINISTER DATABASE TRIGGER
SYS      CREATE ANY OUTLINE
SYS      MANAGE ANY QUEUE
SYS      CREATE ANY DIMENSION
SYS      EXECUTE ANY OPERATOR
SYS      CREATE ANY OPERATOR
SYS      ALTER ANY TRIGGER
SYS      ALTER ANY PROCEDURE
SYS      CREATE PROCEDURE
SYS      ALTER ANY ROLE
SYS      DROP ANY SEQUENCE

GRANTEE  PRIVILEGE
-------- ----------------------------------------
SYS      CREATE ANY VIEW
SYS      ALTER ANY CLUSTER
SYS      UNLIMITED TABLESPACE
SYS      CREATE SESSION
SYS      ALTER ANY ANALYTIC VIEW
SYS      SELECT ANY MEASURE FOLDER
SYS      ALTER LOCKDOWN PROFILE
SYS      CREATE ANY SQL TRANSLATION PROFILE
SYS      DROP ANY CUBE BUILD PROCESS
SYS      CREATE ANY MEASURE FOLDER
SYS      UPDATE ANY CUBE

GRANTEE  PRIVILEGE
-------- ----------------------------------------
SYS      SELECT ANY CUBE
SYS      ALTER ANY CUBE
SYS      ALTER ANY CUBE DIMENSION
SYS      ALTER ANY MINING MODEL
SYS      EXECUTE ANY ASSEMBLY
SYS      CREATE ANY EDITION
SYS      CREATE ANY JOB
SYS      DROP ANY RULE
SYS      IMPORT FULL DATABASE
SYS      EXECUTE ANY RULE SET
SYS      CREATE RULE SET

GRANTEE  PRIVILEGE
-------- ----------------------------------------
SYS      ON COMMIT REFRESH
SYS      MERGE ANY VIEW
SYS      ALTER ANY OUTLINE
SYS      EXECUTE ANY INDEXTYPE
SYS      UNDER ANY TYPE
SYS      DROP ANY MATERIALIZED VIEW
SYS      CREATE MATERIALIZED VIEW
SYS      ANALYZE ANY
SYS      CREATE ANY TRIGGER
SYS      FORCE ANY TRANSACTION
SYS      GRANT ANY ROLE

GRANTEE  PRIVILEGE
-------- ----------------------------------------
SYS      DROP PUBLIC DATABASE LINK
SYS      CREATE SEQUENCE
SYS      CREATE ANY INDEX
SYS      CREATE ANY CLUSTER
SYS      CREATE ROLLBACK SEGMENT
SYS      DROP TABLESPACE
SYS      ALTER ANY HIERARCHY
SYS      DROP LOCKDOWN PROFILE
SYS      SET CONTAINER
SYS      FLASHBACK ARCHIVE ADMINISTER
SYS      CREATE ANY CUBE BUILD PROCESS

GRANTEE  PRIVILEGE
-------- ----------------------------------------
SYS      DELETE ANY MEASURE FOLDER
SYS      DROP ANY CUBE DIMENSION
SYS      CREATE ANY CUBE DIMENSION
SYS      CREATE CUBE DIMENSION
SYS      CREATE MINING MODEL
SYS      CREATE ASSEMBLY
SYS      CREATE EXTERNAL JOB
SYS      CHANGE NOTIFICATION
SYS      ADMINISTER ANY SQL TUNING SET
SYS      CREATE ANY RULE
SYS      ALTER ANY RULE SET

GRANTEE  PRIVILEGE
-------- ----------------------------------------
SYS      EXECUTE ANY EVALUATION CONTEXT
SYS      DEBUG CONNECT SESSION
SYS      DROP ANY OUTLINE
SYS      UNDER ANY VIEW
SYS      CREATE ANY INDEXTYPE
SYS      EXECUTE ANY TYPE
SYS      CREATE ANY TYPE
SYS      CREATE TRIGGER
SYS      DROP ANY PROCEDURE
SYS      CREATE SYNONYM
SYS      DROP ANY CLUSTER

GRANTEE  PRIVILEGE
-------- ----------------------------------------
SYS      REDEFINE ANY TABLE
SYS      DROP ANY TABLE
SYS      DROP ROLLBACK SEGMENT
SYS      MANAGE TABLESPACE

235行が選択されました。

SYSユーザーのロールをDBA_ROLE_PRIVS で確認

SQL> select grantee, granted_role from dba_role_privs where grantee='SYS';

GRANTEE  GRANTED_ROLE
-------- ----------------------------------------
SYS      AUDIT_VIEWER
SYS      CAPTURE_ADMIN
SYS      GATHER_SYSTEM_STATISTICS
SYS      OPTIMIZER_PROCESSING_RATE
SYS      EM_EXPRESS_ALL
SYS      JAVAUSERPRIV
SYS      GSMADMIN_ROLE
SYS      XDB_WEBSERVICES_OVER_HTTP
SYS      SODA_APP
SYS      DATAPATCH_ROLE
SYS      ORDADMIN

GRANTEE  GRANTED_ROLE
-------- ----------------------------------------
SYS      DV_REALM_RESOURCE
SYS      EXP_FULL_DATABASE
SYS      GSMROOTUSER_ROLE
SYS      DBMS_MDX_INTERNAL
SYS      RECOVERY_CATALOG_OWNER_VPD
SYS      RECOVERY_CATALOG_USER
SYS      EM_EXPRESS_BASIC
SYS      SCHEDULER_ADMIN
SYS      LBAC_DBA
SYS      DBA
SYS      PDB_DBA

GRANTEE  GRANTED_ROLE
-------- ----------------------------------------
SYS      AUDIT_ADMIN
SYS      LOGSTDBY_ADMINISTRATOR
SYS      PROVISIONER
SYS      XS_NAMESPACE_ADMIN
SYS      GGSYS_ROLE
SYS      JAVAIDPRIV
SYS      JAVASYSPRIV
SYS      APPLICATION_TRACE_VIEWER
SYS      DBFS_ROLE
SYS      DATAPUMP_IMP_FULL_DATABASE
SYS      RECOVERY_CATALOG_OWNER

GRANTEE  GRANTED_ROLE
-------- ----------------------------------------
SYS      OEM_ADVISOR
SYS      XDBADMIN
SYS      XDB_SET_INVOKER
SYS      RDFCTX_ADMIN
SYS      CONNECT
SYS      SELECT_CATALOG_ROLE
SYS      EXECUTE_CATALOG_ROLE
SYS      DATAPUMP_EXP_FULL_DATABASE
SYS      XS_CACHE_ADMIN
SYS      SYSUMF_ROLE
SYS      HS_ADMIN_EXECUTE_ROLE

GRANTEE  GRANTED_ROLE
-------- ----------------------------------------
SYS      GDS_CATALOG_SELECT
SYS      AUTHENTICATEDUSER
SYS      XDB_WEBSERVICES
SYS      XDB_WEBSERVICES_WITH_PUBLIC
SYS      EJBCLIENT
SYS      JMXSERVER
SYS      CTXAPP
SYS      CDB_DBA
SYS      AQ_USER_ROLE
SYS      ADM_PARALLEL_EXECUTE_TASK
SYS      XS_CONNECT

GRANTEE  GRANTED_ROLE
-------- ----------------------------------------
SYS      OEM_MONITOR
SYS      BDSQL_USER
SYS      HS_ADMIN_SELECT_ROLE
SYS      GSMUSER_ROLE
SYS      AQ_ADMINISTRATOR_ROLE
SYS      BDSQL_ADMIN
SYS      JAVADEBUGPRIV
SYS      JAVA_ADMIN
SYS      OLAP_DBA
SYS      OLAP_USER
SYS      RESOURCE

GRANTEE  GRANTED_ROLE
-------- ----------------------------------------
SYS      IMP_FULL_DATABASE
SYS      XS_SESSION_ADMIN
SYS      HS_ADMIN_ROLE
SYS      GSM_POOLADMIN_ROLE
SYS      DBJAVASCRIPT
SYS      OLAP_XS_ADMIN
SYS      DV_REALM_OWNER

73行が選択されました。

SYSTEMユーザーの権限を DBA_SYS_PRIVS で確認

SQL> select grantee, privilege from dba_sys_privs where grantee='SYSTEM';

GRANTEE  PRIVILEGE
-------- ----------------------------------------
SYSTEM   GLOBAL QUERY REWRITE
SYSTEM   CREATE TABLE
SYSTEM   DEQUEUE ANY QUEUE
SYSTEM   ENQUEUE ANY QUEUE
SYSTEM   SELECT ANY TABLE
SYSTEM   MANAGE ANY QUEUE
SYSTEM   UNLIMITED TABLESPACE
SYSTEM   CREATE MATERIALIZED VIEW

8行が選択されました。

SYSTEMユーザーのロールをDBA_ROLE_PRIVS で確認

SQL> select grantee, granted_role from dba_role_privs where grantee='SYSTEM';

GRANTEE  GRANTED_ROLE
-------- ----------------------------------------
SYSTEM   DBA
SYSTEM   AQ_ADMINISTRATOR_ROLE

比べてみると、付与されている権限もロールも、SYSユーザーの方が圧倒的の多いのが分かります。

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

SYS

このアカウントでは、すべての管理機能を実行できます。データベースのデータ・ディクショナリ用のすべての実表およびベース・ビューはSYSスキーマに保存されます。これらの実表およびベース・ビューはOracle Databaseを操作する際に重要となります。データ・ディクショナリの整合性を保持するには、SYSスキーマ内の表をデータベースのみで操作します。すべてのユーザーまたはデータベース管理者による変更は絶対に行わないでください。また、SYSスキーマ内に表を作成しないでください。

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

SYSTEM

このアカウントは、次の例外を除いたすべての管理機能を実行します。

バックアップとリカバリ

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

このアカウントを使用して日常的な管理タスクを実行できますが、Oracle Databaseを管理するための名前付きユーザー・アカウントを作成して、データベース・アクティビティを監視できるようにすることをお薦めします。 引用元: Oracle Database 2日でデータベース管理者 > 7.3.1 SYSおよびSYSTEMユーザー

SYSユーザーとSYSTEMユーザーの違い(私の自分なりの解釈)

  • SYSユーザー
    Oracleすべての管理権限(バックアップ、リカバリ含む)を持つ
    データディクショナリの所有者
    SYSDBAとして接続する
    Oracle DBがOPENしてなくても、アイドルインスタンス状態にも接続でき、DBの起動、停止、作成ができる
  • SYSTEMユーザー
    Oracle通常の管理作業を行う管理権限を持つ
    SYSユーザーが持つ権限よりも限定されていて、バックアップ、リカバリはできない
    NORMALで接続する

ログインするときの「as sysdba」の要否

SYSDBA権限とは

SYSDBAおよびSYSOPERはデータベースの作成、起動、停止、バックアップまたはリカバリなどの高度な管理操作を実行するために必要な管理権限です。SYSDBAシステム権限は、すべての権限を持つデータベース管理者用、SYSOPERシステム権限は、基本的な運用タスクを実行するがユーザー・データを表示する権限は持たないユーザー用です。

SYSDBAおよびSYSOPERは、データベースがオープンでないときもデータベース・インスタンスにアクセスできるシステム権限です。これらの権限の制御は完全にデータベース外で行われています。この制御により、これらの権限のいずれかを付与されている管理者は、データベース・インスタンスに接続してデータベースを起動できます。

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

SYSユーザーはインストール後すぐにSYSDBAの権限を自動的に付与されます。SYSユーザーとしてログインする場合、SYSDBAまたはSYSOPERとしてデータベースに接続する必要があります。SYSDBAユーザーとして接続すると、SYSDBA権限が発動され、SYSOPERユーザーとして接続すると、SYSOPER権限が発動されます。EM Expressを使用すると、ユーザーSYSとしてログインし、SYSDBAまたはSYSOPERとして接続できます。

SYSDBAまたはSYSOPER権限で接続すると、通常はユーザー名に関連付けられているスキーマではなく、デフォルトのスキーマで接続が確立されます。このスキーマは、SYSDBAの場合はSYS、SYSOPERの場合は、PUBLICです。 引用元: Oracle Database 2日でデータベース管理者 > 7.3.2 SYSDBAおよびSYSOPERシステム権限

DBサーバー上のoracleユーザーでOS認証で接続
sys / as sysdba
[oracle@SV-PLUTO ~]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on 月 113 17:43:52 2020
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.



Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
に接続されました。
SQL> show user
ユーザーは"SYS"です。
SQL>

SYSユーザーは「as sysdba」が必要

sqlplus sys/●●●●●●●●●● as sysdba
[oracle@SV-PLUTO ~]$ sqlplus sys/●●●●●●●●●● as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on 月 113 17:45:39 2020
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.



Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
に接続されました。
SQL> show user
ユーザーは"SYS"です。
SQL>

SYSユーザーは「as sysdba」をつける必要がある。つけないとログインできない。

[oracle@SV-PLUTO ~]$ sqlplus sys/●●●●●●●●●●

SQL*Plus: Release 19.0.0.0.0 - Production on 月 113 17:46:35 2020
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

ERROR:
ORA-28009: SYSでの接続はSYSDBAまたはSYSOPERで行う必要があります


ユーザー名を入力してください:

リモートPCから接続する場合は以下

C:\>sqlplus sys/●●●●●●●●●●@ORCLCDB as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on 月 113 17:51:32 2020
Version 19.5.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.



Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
に接続されました。
SQL> show user
ユーザーは"SYS"です。
SQL>
C:\>sqlplus sys/●●●●●●●●●●@ORCLCDB

SQL*Plus: Release 19.0.0.0.0 - Production on 月 113 17:53:55 2020
Version 19.5.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

ERROR:
ORA-28009: SYSでの接続はSYSDBAまたはSYSOPERで行う必要があります


ユーザー名を入力してください:

OsqlEditの場合も、SYSユーザーはMODE=「SYSDBA」にする必要がある。

SYSユーザーでMODE=「NORMAL」にすると下記エラーメッセージが表示される。

SYSTEMユーザーは「as sysdba」は不要

sqlplus system/●●●●●●●●●●
[oracle@SV-PLUTO ~]$ sqlplus system/●●●●●●●●●●

SQL*Plus: Release 19.0.0.0.0 - Production on 月 113 17:48:04 2020
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

最終正常ログイン時間: 月 113 2020 12:51:42 +09:00


Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
に接続されました。
SQL> show user
ユーザーは"SYSTEM"です。
SQL>

SYSTEMユーザーで「as sysdba」をつけると、SYSユーザーで接続した状態になった。

[oracle@SV-PLUTO ~]$ sqlplus system/●●●●●●●●●● as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on 月 113 17:49:27 2020
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.



Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
に接続されました。
SQL> show user
ユーザーは"SYS"です。
SQL>

リモートPCから接続する場合は以下

C:\>sqlplus system/●●●●●●●●●●@ORCLCDB

SQL*Plus: Release 19.0.0.0.0 - Production on 月 113 17:54:51 2020
Version 19.5.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

最終正常ログイン時間: 月 113 2020 17:49:16 +09:00


Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
に接続されました。
SQL> show user
ユーザーは"SYSTEM"です。
SQL>

リモートPCからだと、SYSTEMユーザーに「as sysdba」をつけるとログインできない。

C:\>sqlplus system/●●●●●●●●●●@ORCLCDB as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on 月 113 17:55:40 2020
Version 19.5.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

ERROR:
ORA-01017: ユーザー名/パスワードが無効です。ログオンは拒否されました。


ユーザー名を入力してください:

OsqlEditでは、SYSTEMユーザーのときはMODE=「NORMAL」として接続する。

SYSTEMユーザーでMODE=「SYSDBA」にすると下記エラーメッセージが出てしまう。

参考にしたサイト

docs.oracle.com

docs.oracle.com www.earthlink.co.jp

ラクルデータベースのおススメの勉強法の紹介

私は、某SIerに勤務しながら、入社以来10年以上、オラクルデータベースを使用したシステムに関わる仕事をしています。

ラクルデータベースについて、仕事場以外でも勉強をしたい、おススメの勉強法を知りたい、と考えている方のために、
①おすすめの書籍と、②おすすめのオンライン学習サイト、 を紹介します。

働きながら勉強するための、おススメの書籍とオンラインで学習できるサイトの紹介です

ラクルデータベースの勉強ができるおススメ書籍

朝の通勤時や帰宅時の電車の中や、社外打合せへの移動中などに勉強するなら、やはり書籍が一番だと思います。

Oracleの基本 ~データベース入門から設計/運用の初歩まで

技術エキスパートとして認定されたOracle ACEの渡部亮太さんの書かれた本です。

https://twitter.com/wrcsus4twitter.com

本書では、Oracle初心者/新人エンジニアが押さえておくべき知識とスキルを、現場で活躍するOracleエンジニアたちが、わかりやすく丁寧に解説。
Oracleの使い方はもちろん、データベースの基礎知識から、データ操作のためのSQL、テーブル設計、データベース運用/管理の基礎までしっかり押さえ、実務で使える入門スキルを身につけられます。
Oracleを学びたいすべての人に最適な入門書です。

Oracleの基本 ~データベース入門から設計/運用の初歩まで

プロとしてのOracleアーキテクチャ入門【第2版】

もう1冊、こちらもOracle ACEの渡部亮太さんの書かれた本です。

本書は、Oracle Databaseのアーキテクチャ(内部構成)について解説した入門書です。 本書の内容を理解することで「Oracleの動作の仕組み」を本質的に理解することができます。 これからOracleを使用する初心者の方から、実際にシステムの開発や運用管理を行っている DBエンジニアやシステムエンジニアの方を対象としています。

プロとしてのOracleアーキテクチャ入門【第2版】(12c、11g、10g 対応) 図解と実例解説で学ぶ、データベースの仕組み (Oracle現場主義)

ラクルデータベースの勉強ができるオンライン学習サイト

iStudy

ラクルのeラーニングサイトといえば、「iStudy」です。
ラクル関連のいろいろなコースが用意されています。

https://www.istudy.co.jp/products/training/list/it/database?a8=s7Jmh7cw.IM0943bcaLmnD3k0J16MwDZcaLVQ1eubuKw.IJDo4JwjbXtMI1QYQXMFuHbe5J2F7Jmgs00000020030001

f:id:souiunogaii:20200118213515j:plain

f:id:souiunogaii:20200118213502j:plain

Oracleの管理者ユーザーSYSとSYSTEMの違いまとめ

  1. SYSユーザーの方がより権限が強い
  2. 通常のメンテナンス作業で使うのはSYSTEM
  3. SYSはデータベースの起動・停止、バックアップ・リストアまでできる
  4. SYSはログイン時は「as sysdba」が必要

souiunogaii.hatenablog.com

以上、読んでいただきありがとうございました。