本記事では、ora_setup 実行時に指定する Oracle DBユーザー(スキーマ)について説明します。
ora_setup時にはSharePlexがOracle Database へ接続および利用する目的で2つのユーザー情報を入力する場面があります。
ora_setup 実行時には途中で次のように Oracle DBAユーザーの入力を求められます。
出力例
$ ora_setup
.....
In order to create the SharePlex tables and user account, we must
connect to the database as a DBA user
Enter a DBA user for orcl : セットアップ用DBAユーザーの入力。(CDBとPDBおよびシードで構成される)マルチテナントデータベース環境に対してセットアップする場合、
SQL*Netを介するためTNS名を指定する必要があります(Bequeath不可)。
select on sys.user$ および select on sys.enc$を付与できる権限を持つDBAロールのデータベース共通ユーザーを指定してください(sqlplus c##userdbarole@tnsalias でログイン出来て必要なロールと権限を持っているDBユーザー)。
参考情報
SharePlex 11.4 - インストールおよびセットアップガイド :: 必要な実行の権限
SharePlex 10.2 - Reference Guide :: Oracle Setup (ora_setup) :: Required Run Privileges
ドキュメントにあるc##sp_adminのようなDBAロールの共通ユーザーを作成してselect on sys.user$ (およびselect on sys.enc$)付与の権限を割り当てておいてora_setup用のユーザーとして使用します。
非マルチテナント環境の場合、Bequeath接続も選択できます。
Bequeath接続でOSのdbaグループに属しているOSユーザーでora_setupを行う場合、OS認証によりDBには実質SYSとして作業が行われるため select on sys.user$ を付与する権限がなくてもDBAロールのDBユーザー名とパスワードの指定のみで十分です(追加情報を参照)。
'SYS' ユーザーを指定することはできません。
1.の入力を進めると次に 以下のようにSharePlex管理者用のユーザー(スキーマ)作成が求められます。
このユーザー(スキーマ)にSharePlexが動作で必要な情報を格納するためのテーブル等が格納されます。
SharePlex objects will need to be created under a special
account. You can pick an existing user or create a new one.
Would you like to create a new SharePlex user ? [y] :
非CDB環境で行う場合、ora_setupの実行OSユーザーがdbaグループに属していない場合、DBAユーザーの指定に DBAロールのユーザーの認証情報を指定しただけではSYS相当で実行できないため権限不足の問題が生じます。
a) SQL*Netを介する場合と同様にselect on sys.user$ および select on sys.enc$を付与できる権限を持つDBAロールのユーザーを使用してください。
b) DBAユーザの指定にDBAロールのユーザーの認証情報を指定してもora_setupの実行OSユーザーがOS spadminグループとOS dbaグループに属していればas sysdba(SYS)相当で行えるため権限不足の問題は生じません。