InterSystems IRIS 2025.2 から、セキュリティデータが格納されるIRISSECURITY データベースが導入されます。これまでセキュリティデータが格納されていた IRISSYS とは異なりIRISSECURITY データベースは暗号化することが可能です。これにより機密データをより安全に保管することができるようになります。将来のバージョンでは IRISSECURITY はミラーリングもサポートされる予定です。
このバージョンではあわせて、セキュリティ管理タスク用の %SecurityAdministrator ロールも導入されます。
お伝えする変更は、継続的デリバリー(CD) および 拡張メンテナンス(EM)の両方に導入されます。つまり、バージョン 2025.2 (CD版、2025年7月23日リリース)および 2026.1 (EM版) 以降、InterSystems IRIS に IRISSECURITY データベースが含まれるようになります。そして該当バージョンにアップグレード時に全セキュリティデータが IRISSYS からIRISSECURITY に自動的に移動します。
InterSystems IRIS 2025.2 は 2025年7月23日リリースされました。ただし、InterSystems IRIS for Health および Health Connect 2025.2 についてはOAuth 設定データに影響を与えるミラーリングの問題の修正が完了するまで公開を延期します。
[アップグレード前に]
新しく導入される IRISSECURITY によって、セキュリティデータを直接参照しているユーザが影響を受ける可能性があります。
- ユーザはセキュリティグローバルに直接アクセスできなくなります。代わりに、セキュリティクラスが提供するAPIを利用する必要があります。
- OAuth2グローバルを別のデータベースにマッピングできなくなります。
- SQLセキュリティが無効化されている場合でも、ユーザはセキュリティテーブルに対するSQLクエリを実行出来なくなります。
- システムデータベースは、事前定義されたシステムリソースを使用するようになります。 (事前定義されたシステムリソースはユーザ変更不可)
Unix では、以前のバージョンで新しいリソースを作成してシステムデータベースに割り当てていた場合、アップグレード後、それらリソースは事前定義されたシステムリソースに置き換わります。(ただし、デフォルトでないリソースを参照しているロールがある場合は、データベースへのアクセスを維持するために、デフォルトのリソースを使用するように手動で変更する必要があります)
Windows ではリソースをデフォルトに戻す必要があります。データベースにデフォルト以外のリソースがある状態で Windows 上でアップグレードを試みると、アップグレードが停止し (インスタンスは変更されません) 「Database must have a resource label of ...」というエラーメッセージが表示されます。
デフォルトのリソースについて
https://docs.intersystems.com/iris20251/csp/docbookj/DocBook.UI.Page.cls
?KEY=GSA_using_resources#GSA_using_resources_about
以下のセクションでは、これら変更点の詳細と、過去バージョンから移行後の代替策をお伝えします。アップグレード前に、ユーザアプリケーションやマクロを確認してテストいただくことを強くお勧めします。
基本的に、以下2つの注意点になっていることをご確認ください。
- (直接グローバルにアクセスせず)提供されるセキュリティAPI経由でセキュリティデータを管理すること
- これら API を利用する必要な権限 (%DB_IRISSYS:R およびAdmin_Secure:U)を持っていること
[グローバルアクセス]
以前は、IRISSYSデータベースにセキュリティグローバルが格納されており、ユーザは以下の権限があればセキュリティデータにアクセスできました。
- %DB_IRISSYS:R: 直接またはセキュリティAPI経由で、セキュリティグローバルを読み取り可能
- %DB_IRISSYS:RW: セキュリティグローバルを読み書き可能
- %DB_IRISSYS:RW および Admin_Secure:U: セキュリティAPI経由で、セキュリティを管理可能
InterSystems IRIS 2025.2 では以下のようになります。
- ユーザはセキュリティグローバルに直接アクセスできなくなります。
- %DB_IRISSYS:R と %Admin_Secure:U の両方とも、(提供されたセキュリティAPIを経由して) セキュリティデータにアクセスするため、かつ、セキュリティクラスを通してセキュリティを管理するための、必要最小限の権限になります。
- 一般的なセキュリティ管理には、新しい %SecurityAdministrator ロールをご利用いただけます。
- セキュリティデータへの読み取り専用アクセス (これまでは %DB_IRISSYS:R が相当) が削除されました。
[グローバルデータのロケーション]
InterSystems IRIS 2025.2 では、以下のセキュリティグローバルデータが、IRISSYS から、IRISSECURITY に格納される ^SECURITY グローバルに移動されました。
- ^SYS("SECURITY")
- ^OAuth2.*
- ^PKI.*
^SYS.TokenAuthD
詳細については、 開発者コミュニティ記事をご参照ください。
[OAuth2 グローバルマッピング]
これまでは OAuth2 グローバルを別のデータベースにマッピングし、OAuth2設定をミラーリングすることが出来ました。InterSystems IRIS 2025.2 では、OAuth2 グローバルをマッピングできなくなりました。また IRISSECURITY はミラーリングできません。そのため現在 OAuth2情報をミラーリングされている場合、以下のいずれかの回避策をご利用ください。
- プライマリとフェイルオーバの両方で手動で変更する
- プライマリから設定をエクスポートし、フェイルオーバ側にインポートする
OAuth2 構成データのエクスポート手順
> set items = $name(^|"^^:ds:IRISSECURITY"|SECURITY("OAuth2"))_".gbl"
> set filename = "/home/oauth2data.gbl"
> do $SYSTEM.OBJ.Export(items,filename)
OAuth2 構成データのインポート手順
> do $SYSTEM.OBJ.Import(filename)
[SQL Security]
これまでは、SQL セキュリティは CPF パラメータ DBMSSecurity によって制御されていました。もし DBMSSecurity が無効であれば、SQL権限のあるユーザはデータベース内のすべてのセキュリティテーブルに任意のクエリを実行できました。
InterSystems IRIS 2025.2 では以下のようになります。
CPF パラメータ DBMSSecurity は、以下のシステムワイドの SQL セキュリティプロパティに置き換わりました。
管理ポータルで設定する手順
システム管理 > セキュリティ > システム・セキュリティ> システムワイドセキュリティパラメータ > Enable SQL securitySetOption で設定する手順
do ##class(%SYSTEM.SQL.Util).SetOption("SQLSecurity", 1)- セキュリティ・テーブルは、詳細および一覧を取得する API を通じてのみアクセス可能となります。APIを利用するには、SQLセキュリティが無効になっている場合でも %DB_IRISSYS:R と %Admin_Secure:U の両方の権限が必要となります。
たとえば、ロールの一覧を取得するには、Security.Roles テーブルに直接クエリを実行できなくなります。代わりに、Security.Roles_List() クエリを使用してください。
> SELECT Name, Description FROM Security.Roles_List()
Roles_List() クエリについて
https://docs.intersystems.com/irislatest/csp/documatic/%25CSP.Documatic
.cls?LIBRARY=%25SYS&CLASSNAME=Security.Roles#List
[IRISSECURITY の暗号化]
IRISSECURITY を暗号化する手順は以下のとおりです。
(1) 暗号化キーを作成します。
管理ポータル > システム管理 > 暗号化 > 新しい暗号化キーファイルを作成
- キーファイル - 暗号化キーファイル名
- 管理者名 - 管理者の名前
- パスワード - キーファイルのパスワード
(2) 暗号化キーをアクティベートします。
管理ポータル > システム管理 > 暗号化 > データベース暗号化 > キー有効
上記で作成した キーファイル、管理者名、パスワード を指定します。
(3) 管理ポータル > システム管理 > 暗号化 > データベース暗号化 > 起動設定構成
(4) 起動時にキー有効化 ドロップダウンメニューから、キー有効化メソッドを選択します。「インタラクティブ」キー有効を強くお勧めします。
(5) IRISSECURITY データベース暗号 ドロップダウンから 「はい」を選択します。
(6) 暗号化を有効にするため、システムを再起動します。
[%クラスへのアクセスルール]
InterSystems IRIS の以前のバージョンでは、ウェブ・アプリケーション用の%クラスにアクセスするには、セキュリティグローバルに値をセットする必要がありました。InterSystems IRIS 2025.2 では、管理ポータルまたは ^SECURITYルーチンを利用して、この設定を行うことができます。
管理ポータルで %クラスへのアクセスルールを設定する手順は以下のとおりです。
(1) システム管理 > セキュリティ > アプリケーション > ウェブ・アプリケーション
(2) 設定したいアプリケーションを選択
(3) Percent Class Access タブから以下のオプションを設定
- タイプ: このルールを、指定した%クラス (AllowClass) だけに対するアクセスに適用するか、指定した接頭辞を含むすべてのクラス (AllowPrefix)へのアクセスに適用するか
- クラス名: アプリケーションにアクセスさせる %クラスまたは接頭辞
- Allow access: 指定された %クラスまたはパッケージへのアクセスをアプリケーションに与えるかどうか
- Add this same access to ALL applications: すべてのアプリケーションにこのルールを適用するか
^SECURITY ルールを使ってクラスへのアクセスルールを設定する手順は以下のとおりです。
(1) %SYS ネームスペースで ^SECURITY ルーチンを実行
%SYS> DO ^SECURITY
(2) オプション 5, 1, 8 を順に選択し、1 を選択して class access rule プロンプトに入る
(3) 以下のように指定
- Application? - アプリケーション名
- Allow type? - このルールを、特定のクラスにアクセスできるよう適用するか (AllowClass) 指定した接頭辞を含むすべてのクラスに適用するか (AllowPrefix)
- Class or package name? - アプリケーションにアクセスさせるクラスまたは接頭辞
- Allow access? - 指定クラスまたはパッケージへのアクセスをアプリケーションに許可するかどうか