株式会社コーソル

コーソルDatabaseエンジニアのブログ

技術ブログ

Windows版OracleのWindowsユーザー3つ(Oracleホームユーザー検証メモ)

Oracle ACE Proの渡部です。 この記事は、JPOUG Advent Calendar 2022 6日目の記事です。5日目は Shuhei Kawamura さんの記事『Micronautを使ってATPと連携するFunctionを簡単に実装する』でした。

特に脈絡も、年末との関係もないのですが、Windows版Oracleで使用するWindowsユーザーについて書きたいと思います。

このテーマ、Windows版Oracleのインストール時に必ず遭遇するにもかからわず、Oracle 12.1でシレっと機能拡張されていたためか、キレイにまとまった資料がない気がします。よって、このAdvent Calendarの機会に書いてみます。:-)

なお、記載においてはWindowsワークグループ環境(非Active Directory環境)を前提としますが、Active Directory環境でも考え方はそのまま使えるはずです。

Windows版Oracleで使用するWindowsユーザー

A) Oracleインストールユーザー

Oracleインストール作業を実行するWindowsユーザーです。 このWindowsユーザーでWindowsにログオンして、OUI(Oracle Databaseのインストーラー)を実行します。

Administratorsグループに所属する必要があります。大抵の環境では以下いずれかのユーザーを使用するのではないでしょうか。

  • Windows事前定義済みのAdministratorユーザー。あらかじめAdministratorsグループに所属している。
  • 新規に作成したoracleユーザー(名称任意)。作成後、Administratorsグループに所属させる。

B) Oracleホームユーザー (12.1-)

Oracle関連のWindowsサービスの実行に使用されるWindowsユーザーです。 一部を除くすべてのOracle関連のWindowsサービスは、Oracleホームユーザーの権限で実行されます。

Oracleホームユーザーは、Oracle Database 12.1から導入されました。 導入の目的は、Oracle関連のWindowsサービスを必要最小限の権限で動作させるためです。

Oracle Database 11.2以前ではOracleホームユーザーがなく、Oracle関連のWindowsサービスは、Windowsで事前定義済みの特殊なユーザーである LocalSystem で動作していました。このユーザーはAdministratorsグループ相当の強力な権限を持っているため、セキュリティの権限最小化の原則に反していました。

Oracleホームユーザーは、この問題へ対処するために導入されたものと思われます。

Oracleホームユーザーの構成は、OUIでOracle Databaseをインストールする際に指定します。すなわち、それぞれのORACLE_HOMEに対してOracleホームユーザーを設定することになります。

C) Oracle管理タスク実行用ユーザー

"ORA_DBA" という名前のWindowsグループに所属するWindowsユーザーを、ここでは「 Oracle管理タスク実行用ユーザー」と呼ぶことにします(マニュアルなどで正式に定義された用語ではありません)。

ORA_DBAグループに所属しているWindowsユーザーはOS認証の対象となるため、パスワードなしでOracleデータベースにSYSDBA権限で接続できます。よって、このWindowsユーザーをOracle管理タスク実行用に使用すると便利です。

  • [補足] 同様の役割をもつWindowsグループとして、"ORA_DBA"以外に"ORA_<HOMENAME>_DBA"グループがあります。

インストールが完了すると、OracleインストールユーザーはORA_DBAグループに自動的に所属することになります。よって、多くの場合、「Oracleインストールユーザー」は、「Oracle管理タスク実行用ユーザー」でもあります。

そして、「Oracleインストールユーザー」とは別に「Oracle管理タスク実行用ユーザー」を作成することもできます。なお、「Oracleインストールユーザー」とは別に「Oracle管理タスク実行用ユーザー」を作成することは必須ではありません。必要に応じて作成する位置づけです。

検証A Oracleホームユーザー

Oracleホームユーザーについて理解を深めるため、以下の環境で検証を行ってみます。

  • Windows Server 2019
  • Oracle Database 19c (19.3.0)

Oracleホームユーザーは、OUIで選択します。

それぞれの選択肢の概要は以下のとおりです。

検証1 「仮想アカウントの使用」

  • A) Oracleインストールユーザー : Windowsユーザー orainst1 を使用
  • B) Oracleホームユーザー : OUIで「仮想アカウントの使用」を選択

Windowsサービスの実行ユーザー

  • Oracle関連のWindowsサービスの「ログオン」プロパティは、NT SERVICE¥OracleServiceORCL1(NT SERVICE¥<サービス名>)というアカウントとなっています
    → Windows サービスが仮想アカウントで実行されることを示しています。

ORACLE_HOMEのNTFSアクセス権限

  • ORACLE_HOMEのNTFSアクセス権限として、ORA_OraDB19Home1_SVCACCTS(ORA_<Home名>_SVCACCTS)へのフルコントロール権限が付与されています
    → 仮想アカウントからORACLE_HOMEにフルアクセスが可能なことがわかります。

なお、Authenticated Usersに対して「読取りと実行」権限が付与されていますが、これは、任意のWindowsユーザーがORACLE_HOME内のプログラムやスクリプトを読取りおよび実行できるようにするためと思われます。 Authenticated Usersは、Guestを除くすべてのユーザーに対応する組み込みのWindowsローカルグループです。

インストール完了後のOracleインストールユーザー

  • インストールが完了すると、Oracleインストールユーザーは以下のWindowsグループに自動的に所属することになります。
    • ORA_ASMDBA
    • ORA_DBA
    • ORA_OraDB19Home1_SYSBACKUP (ORA_<HOMENAME>_SYSBACKUP)
    • ORA_OraDB19Home1_SYSDG(ORA_<HOMENAME>_SYSDG)
    • ORA_OraDB19Home1_SYSKM(ORA_<HOMENAME>_SYSKM)

これらのWindowsグループではORA_DBAが重要です。 Windowsユーザーを、WindowsグループORA_DBAに所属させると、 OS認証を用いてパスワードなしでSYSDBA権限でOracleデータベースに接続できるようになります。

ORA_DBA以外のWindowsグループの役割については、マニュアルを参照してください。

検証2 「既存のWindowsユーザーの使用」

  • A) Oracleインストールユーザー : Windowsユーザー orainst2 を使用
  • B) Oracleホームユーザー : OUIで「既存のWindowsユーザーの使用」を選択し、ユーザー名に"orasv2"を指定

Windowsサービスの実行ユーザー

  • Oracle関連のWindowsサービスの「ログオン」プロパティのアカウントは、.¥orasv2(ローカルユーザーorasv2)"となっています
    → Windows サービスがローカルユーザーorasv2で実行されることを示しています。

ORACLE_HOMEのNTFSアクセス権限

  • ORACLE_HOMEのNTFSアクセス権限として、ローカルユーザーorasv2へのフルコントロール権限が付与されています
    → ローカルユーザーorasv2からORACLE_HOMEにフルアクセスが可能なことがわかります。

Authenticated Usersに対して「読取りと実行」権限が付与されているのは検証1と同様です。

インストール完了後のOracleインストールユーザー

検証1と同様です。

検証3 「Windowsユーザーの新規作成」(省略)

  • A) Oracleインストールユーザー : Windowsユーザー orainst3 を使用
  • B) Oracleホームユーザー : OUIで「Windowsユーザーの新規作成」を選択し、ユーザー名に"orasv3"を指定

検証2とほぼ同等なので、この構成での検証は省略します。

検証4 「Windows組込みアカウント」

  • A) Oracleインストールユーザー : Windowsユーザー orainst4 を使用
  • B) Oracleホームユーザー : OUIで「Windows組込みアカウント」を選択

Windowsサービスの実行ユーザー

  • Oracle関連のWindowsサービスの「ログオン」プロパティはローカル システム アカウントとなっています
    → Windows サービスがLocalSystemアカウントで実行されることを示しています。

ORACLE_HOMEのNTFSアクセス権限

  • ORACLE_HOMEのNTFSアクセス権限として、Windows サービスを意識した構成はありませんが、Administratorsグループに対してフルコントロール権限が付与されていたため、これを用いてLocalSystemアカウントがからORACLE_HOMEにフルアクセスが可能です

Authenticated Usersに対して「読取りと実行」権限が付与されているのは検証1と同様です。

インストール完了後のOracleインストールユーザー

検証1と同様です。

検証B Oracle管理タスク実行用ユーザー

Windowsグループ"ORA_DBA"に所属するWindowsユーザー"oraadm1"が、 OS認証を用いてパスワードなしでSYSDBA権限でOracleデータベースに接続できることを確認します。

C:\Users\oraadm1>whoami
ws19orx\oraadm1

C:\Users\oraadm1>whoami /groups

GROUP INFORMATION
-----------------

グループ名                             種類                 SID                                            属性
====================================== ==================== ============================================== ========================================
Everyone                               よく知られたグループ S-1-1-0                                        固定グループ, 既定で有効, 有効 なグループ
WS19ORX\ORA_DBA←★                    エイリアス           S-1-5-21-4025810546-2942174713-2363560977-1007 固定グループ, 既定で有効, 有効 なグループ
BUILTIN\Users                          エイリアス           S-1-5-32-545                                   固定グループ, 既定で有効, 有効 なグループ
BUILTIN\Remote Desktop Users           エイリアス           S-1-5-32-555                                   固定グループ, 既定で有効, 有効 なグループ
NT AUTHORITY\REMOTE INTERACTIVE LOGON  よく知られたグループ S-1-5-14                                       固定グループ, 既定で有効, 有効 なグループ
NT AUTHORITY\INTERACTIVE               よく知られたグループ S-1-5-4                                        固定グループ, 既定で有効, 有効 なグループ
NT AUTHORITY\Authenticated Users       よく知られたグループ S-1-5-11                                       固定グループ, 既定で有効, 有効 なグループ
NT AUTHORITY\This Organization         よく知られたグループ S-1-5-15                                       固定グループ, 既定で有効, 有効 なグループ
NT AUTHORITY\ローカル アカウント       よく知られたグループ S-1-5-113                                      固定グループ, 既定で有効, 有効 なグループ
LOCAL                                  よく知られたグループ S-1-2-0                                        固定グループ, 既定で有効, 有効 なグループ
NT AUTHORITY\NTLM Authentication       よく知られたグループ S-1-5-64-10                                    固定グループ, 既定で有効, 有効 なグループ
Mandatory Label\Medium Mandatory Level ラベル               S-1-16-8192

C:\Users\oraadm1>echo %PATH%
D:\oracle\product\19.0.0\dbhome_4\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Users\oraadm1\AppData\Local\Microsoft\WindowsApps;

C:\Users\oraadm1>sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on 月 12月 5 19:21:31 2022
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> exit
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0との接続が切断されました。
  • Oracle管理タスク実行用ユーザーは、Administratorsグループに所属している必要はありません。OS認証を使用する場合でも、ORA_DBAグループに所属していればOKです。
    • Oracleインストールユーザーと混同しないようにしてください。Oracleインストールユーザーは、Administratorsグループに所属している必要があります。
    • インストール完了後に、Oracleインストールユーザーは自動的にORA_DBAグループに所属する動作が存在するため、「Oracle管理タスク実行用ユーザー」と「Oracleインストールユーザー」を混同しがちな気がします。

プロフィール

On7tWW6m1Ul4

渡部 亮太

・Oracle ACE
・AWS Certified Solutions Architect - Associate
・ORACLE MASTER Platinum Oracle Database 11g, 12c 他多数

カテゴリー

アーカイブ