株式会社コーソル

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

技術ブログ

ワークグループ環境におけるWindows HA構成のSID問題

Oracle ACE Proの渡部です。 弊社コーソルはSIOS LifeKeeperの SI&Supportパートナーで、SIOS LifeKeeperの販売および導入が可能です。

SIOS LifeKeeperを用いると、OracleをActive-Stanby型のHA構成として、可用性を高めることができます。

Windows ワークグループ環境でのHA構成

ワークグループ環境(非ドメイン環境、Active Directoryを使用しない環境)で、WindowsをHA構成にする場合、 Windowsユーザーの表示が妙なものになったり、NTFS上のファイルへのアクセスが意図せず失敗したりする場合があります。 これは、Windowsにおける内部のユーザー識別子であるSID(セキュリティ識別子 / Security Identifier)の仕様に起因するものです。

現象1 グループ名やユーザー名が表示されず、SIDが表示される

共有ディスクに配置したファイル(およびフォルダ)を右クリック→「プロパティ」→「セキュリティ」→「グループ名またはユーザー名」におけるグループ名およびユーザー名一覧で、グループ名やユーザー名が表示されず、"S-1-5-21-3710263194-772320819-919734316-500"のような数字列が表示される。この数字列は、Windowsにおける内部のユーザー識別子であるSID(セキュリティ識別子 / Security Identifier)です。

この現象が発生する理由は、現象が発生したノードにおいて、そのSIDに対応するユーザーが存在しないためです。

Windowsでは、ユーザー(およびグループ)が同じ名前であっても、ノードごとに異なるSIDが割り当てられます。例えば、弊社内の検証環境において、各ノードで確認したAdministratorのSIDは以下です。

ノード名        SID
--------------- ----------------------------------------------
w22lk8a0jf11    S-1-5-21-3710263194-772320819-919734316-500
w22lk8a0jf12    S-1-5-21-2328217415-892464308-2100574017-500

同じAdministratorという名前を持つユーザーであっても、ノードごとに異なるSIDが割り当てられるため、HA環境において、以下のような操作を行うと、ノード2において、そのSIDに対応するユーザーが存在しない状況が発生します。

  1. ノード1(DBサーバ#1)から共有ディスクにアクセスできる状態で、共有ディスク内にファイルを新規作成する
    → 以下のSIDに対するアクセス権限が付与される
    ・ SID1(DBサーバ#1のAdministratorのSID) ・ S-1-5-32-544 ( Administratorsグループの固定SID) ・など(今回は省略)
  2. ノード2(DBサーバ#2)から共有ディスクにアクセスできる状態にして、ファイルのアクセス権を確認する → ノード2には、SID1(DBサーバ#1のAdministratorのSID)に対応するユーザーがないため、SIDが表示される。

なお、各ノードのアクセス権 表示は以下です。

  • ノード1には、SID=S-1-5-21-3710263194-772320819-919734316-500に対応するユーザーとして、Administratorが存在するため、アクセス権表示で、Administratorユーザーが表示されています。
  • ノード2には、SID=S-1-5-21-3710263194-772320819-919734316-500に対応するユーザー(およびグループ)が存在しないため、アクセス権表示で、SIDが表示されています。

現象2 片方のノードからファイルにアクセスできない

HA構成のノード1とノード2で、同じ名前のユーザーおよびグループを作成した場合で、ファイルおよびフォルダについて、ノード1からはアクセスOK、ノード2からはアクセスNGという状況が発生する。

Windowsでは、ユーザー名やグループ名ではなく、SIDを元にNTFSアクセス制御が機能します。また、すでに説明した通り、ユーザー(およびグループ)が同じ名前であっても、ノードごとに異なるSIDが割り当てられます。

このため、HA構成の両ノードで同じユーザー、同じグループ名を使っていて、あるノードでそれらのユーザーやグループにアクセス制御を付与していても、別のノードからはアクセスができない状況が発生します。

たとえば以下のような操作を行うと、ノード2でファイル(およびフォルダ)にアクセスできない状況が発生します。

  1. 両ノードで、grp1グループ、user1ユーザーを作成する。 → 各ノードで異なるSIDが割り当てられる。
  2. ノード1(DBサーバ#1)から、共有ディスク内にファイル(およびフォルダ)を新規作成し、grp1グループ(= SID3)、user1ユーザー(= SID1)に対してフルコントロール アクセス権限を付与する
  3. ノード1のuser1は、ファイル(およびフォルダ)にアクセスOK
    なぜなら、SID1( = ノード1のuser1ユーザー)およびSID3(= ノード1のgrp1グループ)にアクセス権限があるため
  4. ノード2のuser1は、ファイル(およびフォルダ)にアクセスNG
    なぜなら、SID2(= ノード2のuser1ユーザーのSID)およびSID4(= ノード2のgrp1グループのSID)にアクセス権限がないため

なお、上記のuser1ユーザー(およびgrp1グループ)に代えて、Administratorユーザーで同じ操作を行うと、両ノードがアクセスOKとなります。

なぜなら、AdministratorsグループのSIDは、ノード共通で固定であるためです(具体的には"S-1-5-32-544")。

Windowsでは、いくつかの事前定義済みユーザーおよびグループに対しては、固定のSIDが割り当てられることになっています。

AdministratorsグループのSIDは、どのノードにおいても"S-1-5-32-544"であるため、「SIDの違いによってアクセス許可の振る舞いが異なる状況」が生まれなかったというわけです。

上記の点から、Windows ワークグループ環境でHA構成を使用する場合、弊社ではできる限り、「固定のSIDが割り当てられる事前定義済みユーザーおよびグループでアクセス許可を構成する」ようにしています。

そもそもWindows ワークグループ環境でHA構成を使用するべきか?

上記の問題は、ユーザー(およびグループ)が同じ名前であっても、ノードごとに異なるSIDが割り当てられることに起因するものです。この動作は、Windows ワークグループ環境でローカルユーザーおよびローカルグループを使用する状況で発生するもので、ドメイン環境(Active Directory環境)でドメインユーザーおよびドメイングループを使用する状況では発生しません。

したがって、もし、ドメインユーザーおよびドメイングループを使用できるのであれば、これらを使用することをお勧めします

LifeKeeperのマニュアルでも、これを推奨しています。

LifeKeeper for Windows を実行するすべてのサーバーで、ローカル管理者権限を持つドメインアカウントの使用を推奨します。

宣伝 LifeKeeper/DataKeeperを用いたOracle HAのご相談はコーソルへ!

コーソルは、サイオステクノロジー株式会社 様のパートナー企業であり、 Oracle DatabaseおよびLifeKeeper/DataKeeperの技術力に自信を持っています。LifeKeeper/DataKeeperを用いたOracle HA構成の導入実績も多数ございます。 LifeKeeper/DataKeeperを用いたOracle HA構成をご検討されている場合、ぜひコーソルへご相談いただければとと思います。

  • 製品販売 : LifeKeeper/DataKeeperの販売
  • 製品導入 : LifeKeeper/DataKeeperの設計および導入
  • 技術支援 : 弊社時間制コンサルサービスを用いた、各種技術支援

 OracleのHA構成に当たっては、OracleおよびHA製品の両方の知識が必要です。このような知識を持つエンジニアの確保は一般に困難です。このような場合、弊社時間制コンサルサービスを用いた各種技術支援が役に立ちます。

弊社時間制コンサルサービスの特徴は以下の通りです。

  • オンサイト対応、メール、電話により、OracleおよびLifeKeeperのプロが貴社の技術支援を行います。
  • 必要な期間、必要な時間分だけ技術支援を受けることができます。
  • 時間契約のため、発生コスト総額を抑えることができます。
  • 支援内容に制限はありません(設計および導入の後方支援、第3者的なアドバイザ役、検証および各種手順の作成、その他オンサイト作業)

コーソルはSIOS様よりBest Alliance Partnerを受賞

サイオステクノロジー株式会社 様より、STI Partner Award 2021において、「 2021年度 Best Alliance Partner 」として表彰されています。

この賞はサイオステクノロジー製品の販売・導入やプロモーションに貢献し、取引拡大したビジネスパートナーに対して贈られるものです。

LifeKeeperのサイオステクノロジー様よりBest Alliance Partnerに表彰!

コーソルはORACLE MASTER Platinum 累計取得者数No.1

コーソルからオラクル製品および関連製品をご購入いただけると、ORACLE MASTER Platinum 単年取得者数7年連続No.1、2016年6月以降 累計保持者数No.1という指標に裏付けされた高いOracle Databaseの技術力により、安心して製品を導入いただけます。また、導入後も製品サポートをご提供いたします。

ORACLE MASTER Platinumとは、2日間にわたる実技試験により認定されるOracle Database最高難度の資格です。 グローバルで有効な資格であり、海外では"Oracle Certified Master"と呼ばれます。

ORACLE MASTER Platinumとは何か / コーソルはPlatinum取得者数No.1!

Oracle DatabaseのDBAサービスを提供可能

Oracle Databaseについても製品販売、製品サポート、製品の導入を行います。また、リモート回線経由でスポット的なDBA実務を行うリモートDBAサービス、コンサルティングやベンダコントロールを含めたOracle Databaseプロフェッショナルサービスを時間制で提供する時間制コンサルサービスも提供しています。

リモートDBAサービス

基幹系DB運用支援および製品サポートについては、3拠点体制による24時間365日対応が可能です。

コーソルの取扱製品

コーソルはオラクル製品および関連製品を取り扱っています。

  • オラクル製品全般 (Oracle Database, Oracle Cloud, Oracle GoldenGate, Oracle WebLogic Serverなど)
  • SharePlex for Oracle
  • Dbvisit Standby
  • Qlik Replicate
  • SIOS LifeKeeper
  • MaxGuage
  • Toad for Oracle / Toad for SQL Server
  • Spotlight for Oracle / Spotlight for SQL Server
  • Delphix
  • PISO
  • D'amo

これらのオラクル製品および関連製品について、販売・導入・運用を様々な形でご支援します。お困りの際はぜひ弊社にお声がけくださいませ。

プロフィール

On7tWW6m1Ul4

渡部 亮太

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

カテゴリー

アーカイブ