技術ブログ
目次
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環境でも考え方はそのまま使えるはずです。
Oracleインストール作業を実行するWindowsユーザーです。 このWindowsユーザーでWindowsにログオンして、OUI(Oracle Databaseのインストーラー)を実行します。
Administratorsグループに所属する必要があります。大抵の環境では以下いずれかのユーザーを使用するのではないでしょうか。
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ホームユーザーを設定することになります。
関連記事:Oracle Databaseを無償で使う方法いろいろ
"ORA_DBA" という名前のWindowsグループに所属するWindowsユーザーを、ここでは「 Oracle管理タスク実行用ユーザー」と呼ぶことにします(マニュアルなどで正式に定義された用語ではありません)。
ORA_DBAグループに所属しているWindowsユーザーはOS認証の対象となるため、パスワードなしでOracleデータベースにSYSDBA権限で接続できます。よって、このWindowsユーザーをOracle管理タスク実行用に使用すると便利です。
インストールが完了すると、OracleインストールユーザーはORA_DBAグループに自動的に所属することになります。よって、多くの場合、「Oracleインストールユーザー」は、「Oracle管理タスク実行用ユーザー」でもあります。
そして、「Oracleインストールユーザー」とは別に「Oracle管理タスク実行用ユーザー」を作成することもできます。なお、「Oracleインストールユーザー」とは別に「Oracle管理タスク実行用ユーザー」を作成することは必須ではありません。必要に応じて作成する位置づけです。
Oracleホームユーザーについて理解を深めるため、以下の環境で検証を行ってみます。
Oracleホームユーザーは、OUIで選択します。
それぞれの選択肢の概要は以下のとおりです。
Windowsサービスの実行ユーザー
NT SERVICE¥OracleServiceORCL1
(NT SERVICE¥<サービス名>)というアカウントとなっていますORACLE_HOMEのNTFSアクセス権限
ORA_OraDB19Home1_SVCACCTS
(ORA_<Home名>_SVCACCTS)へのフルコントロール権限が付与されていますなお、Authenticated Usersに対して「読取りと実行」権限が付与されていますが、これは、任意のWindowsユーザーがORACLE_HOME内のプログラムやスクリプトを読取りおよび実行できるようにするためと思われます。 Authenticated Usersは、Guestを除くすべてのユーザーに対応する組み込みのWindowsローカルグループです。
インストール完了後のOracleインストールユーザー
これらのWindowsグループではORA_DBAが重要です。
Windowsユーザーを、Windowsグループ
に所属させると、
OS認証を用いてパスワードなしでSYSDBA権限でOracleデータベースに接続できるようになります。ORA_DBA
ORA_DBA以外のWindowsグループの役割については、マニュアルを参照してください。
Windowsサービスの実行ユーザー
.¥orasv2
(ローカルユーザーorasv2)"となっていますORACLE_HOMEのNTFSアクセス権限
Authenticated Usersに対して「読取りと実行」権限が付与されているのは検証1と同様です。
インストール完了後のOracleインストールユーザー
検証1と同様です。
検証2とほぼ同等なので、この構成での検証は省略します。
Windowsサービスの実行ユーザー
ローカル システム アカウント
となっていますORACLE_HOMEのNTFSアクセス権限
Authenticated Usersに対して「読取りと実行」権限が付与されているのは検証1と同様です。
インストール完了後のOracleインストールユーザー
検証1と同様です。
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との接続が切断されました。