記事
· 2023年1月30日 8m read

セキュリティ設定のエクスポートとインポートに関するTips

以下の2つの方法でセキュリティ設定をエクスポートおよびインポートできます。

- コマンドラインで行う場合は、^SECURITYユーティリティを使用します。
- プログラムで行う場合は、SecurityパッケージのExportおよびImportメソッドを使用します。
 

設定をエクスポートする方法:

◆コマンドラインで設定をエクスポートする方法(^SECURITY)

セキュリティの全ての設定、または個々のセクションをエクスポートできます。


^SECURITYを使用して、すべてをエクスポートする場合:

^SECURITYを使用すると、インスタンスのすべてのセキュリティ設定を簡単にエクスポートまたはインポートできます。
ターミナルで %SYS ネームスペースに移動し、^SECURITYを開始します。

USER>zn "%SYS"
%SYS>do ^SECURITY

^SECURITY を実行後、オプション12 の System parameter setup を選択します。
次のメニューで、オプション5 の Export All Security settings を選択します。
以下のようなプロンプトが表示されますので、Yes を入力します。

Export ALL security records? Yes => [yes または y を入力 -- 大文字小文字は関係ありません]

^SECURITYユーティリティは、後で設定をインポートするとき、インポートの前にすべての証明書ディレクトリと証明書ファイルが存在する必要があることを知らせてくれます。
次に、ファイル情報を入力するプロンプトになります。

Export to file name SecurityExport.xml =>
Parameters? "WNS" =>

Enter を押下すると、デフォルト入力となります。
すでにエクスポート済みのファイルが存在する場合は、以下のようなメッセージが表示されます。

SecurityExport.xml already exists, do you want to overwrite it? Yes => [yes または y を入力]

最後に、以下のような設定をエクスポートすることを確認するプロンプトを表示されます。
もう一度、yesまたはyと入力します。
設定をエクスポートする際、^SECURITY ユーティリティにより、実行内容の簡単なレポートが出力されます。

Confirm export of selected security records to SecurityExport.xml? No => y [yes または y を入力]


^SECURITYを使用して、サブセットを個別にエクスポートする場合:

すべてをエクスポートせずに、特定の要素を個別にエクスポートですることも可能です。
個別の要素をエクスポートするには、2つの異なる方法があります。

- 個別のメニューで行う方法
- [ 5) Export All Security settings ] メニューの選択の下にある個別のアイテムとして行う方法

個別メニューで行う場合、以下のアイテムをエクスポートすることができます:

- (オプションでSQL特権を含む) ユーザ
- (オプションでSQL特権を含む) ロール
- サービス
- リソース
- アプリケーション
- LDAP設定
- SSL / TLS設定
- KMIPサーバ
- 監査ログエントリ

[ 5) Export All Security settings ] を選択する場合、すべてをエクスポートする場合は [Yes または y] を選択しますが、特定のアイテムの情報のみエクスポートする場合は、[No または n] を入力します。選択可能なアイテムは以下になります。

  • Application records (Doc DBアプリケーションを除くすべてのアプリケーションタイプ)
  • DocDB records (Doc DBアプリケーション)
  • Event records (監査イベントが有効になっている)
  • KMIP server records
  • LDAP Configuration records
  • OpenAM Identity Service records
  • Phone Provider records 
  • Resource records 
  • Role records (SQL特権は含まれません)
  • Service records
  • SQL Privileges records
  • System records (ステムレベルの設定のみ)
  • SSL configuration records
  • User records (SQL特権を含まない)
  • X509 User records
  • X509 Credential records

たとえば、ユーザーメニューを使用してSQL特権を含むユーザーをエクスポートする場合は以下のようになります。
ターミナルで、%SYSネームスペースに移動して^SECURITYを開始します。

USER>zn "%SYS"
%SYS>do ^SECURITY

^SECURITY を実行後、オプション 1 の User setup を選択します。
次に、オプション 6 の Export users を選択します。

Export which users? * => プロンプトで、単一の名前付きユーザー、コンマ区切りのユーザーリスト、またはすべてのユーザー(*:デフォルト)をエクスポートできます。

Export users containing these roles? * => プロンプトでは、特定のロールを持つユーザーのサブセットを選択することも可能です。(指定されたロールを持つユーザーをエクスポートします。)

Export SQL Privileges directly granted to these users? No => プロンプトでは、エクスポートされたすべてのユーザーのSQL特権を含めるかを選択できます。(このオプションはロールでも使用できます。すべてのセキュリティ設定をエクスポートすると、SQL特権が含まれます。)

次に、すべての設定をエクスポートする場合と同様に、ファイル名、デフォルト、および確認のプロンプトが表示されます。

個別にエクスポートする場合もほぼ同じです。たとえば、ロールをエクスポートするときに、SQL特権を含めるように指定することもできます。


◆プログラムにより設定をエクスポートする方法(Securityパッケージを使用)

%SYSネームスペースのSecurityパッケージには、設定をエクスポートおよびインポートできるクラスがいくつかあります。以下が含まれます。

  • Security.Applications: アプリケーションのすべてまたはコンマ区切りのリスト、およびすべてまたは特定のタイプのアプリケーション。
  • Security.Domains: ドメインのすべてまたはコンマ区切りリスト。
  • Security.Events: ソース、タイプ、およびイベントのコンマ区切りリストからの監査イベントのすべてまたはリスト。
  • Security.KMIPServer: KMIPサーバーのすべてのプロパティ。
  • Security.Resources: リソースのすべてまたはコンマ区切りのリスト、またはパブリックアクセス許可によるリソースのサブセット。
  • Security.Roles: すべてまたはロールのコンマ区切りリスト、または選択したリソースに関連付けられた特権を持つロールのサブセット。 オプションで、リストされた各ロールのSQL特権。
  • Security.SQLAdminPrivilegeSet: ユーザーまたはロールがテーブルを制御できるようにするすべての管理権限 (通常、ユーザーまたはロールを編集するためにページの[SQL権限]タブで付与されます)
    • %CREATE_METHOD, %DROP_METHOD, %CREATE_FUNCTION, %DROP_FUNCTION, %CREATE_PROCEDURE, %DROP_PROCEDURE, %CREATE_QUERY, %DROP_QUERY, %CREATE_TABLE, %ALTER_TABLE, %DROP_TABLE, %CREATE_VIEW, %ALTER_VIEW, %DROP_VIEW, %CREATE_TRIGGER, %DROP_TRIGGER
    • %DB_OBJECT_DEFINITION, 上記の16個すべての特権を付与します。
    • INSERT、UPDATE、およびDELETE操作のための%NOCHECK、%NOINDEX、%NOLOCK、%NOTRIGGER特権。
  • Security.SQLPrivileges: 非システムテーブルに付与されるすべてのSQL権限。
  • Security.SSLConfigs: SSL / TLS構成のすべてまたはコンマ区切りリスト。
  • Security.Services: セキュリティサービスのすべてまたはコンマ区切りリスト。
  • Security.System
    • Export() - インスタンスのシステムレベルのセキュリティ設定。
    • ExportAll() - インスタンスのすべてのセキュリティ設定。
  • Security.Users: ユーザーのすべてまたはコンマ区切りのリスト、または選択したリソースに関連付けられた特権を持つユーザーのサブセット。 オプションで、リストされた各ユーザーのSQL特権。

これらはすべてクラスリファレンスに記載されています(各項目のリンクがクラスリファレンス情報です)。


設定をインポートする方法:

セキュリティ設定をインポートするプロセスについては、メニューはエクスポートする方法を参考にしてください。

【注意】
利用可能なセキュリティ設定は、バージョンごとに変わる可能性があることに注意してください。
セキュリティ設定のエクスポートとインポートは、同一バージョン間で行うようにしてください。
インターシステムズ製品は、バージョンをまたいだセキュリティ設定のエクスポートとインポートをサポートしておりません。


◆^SECURITYを使用した設定のインポート

^SECURITYユーティリティで、独自のメニューによりエクスポートできる項目は、インポートすることも可能です。

また、システムパラメータのセットアップでオプション12(System parameter setup)を選択し、オプション6 の Import All Security settings で、すべてのセキュリティ設定のインポートを行うことも可能です。

重要な点:

  • 唯一注目すべき点は、インポート元のファイルを選択するプロンプトで、別のファイルからユーザーをインポートする場合、そのファイルとそのパスを入力することが必要です。 (サブセットのみをインポートする場合、デフォルトファイルはUsersExport.xmlなどの異なる名前になります。)
  • (ユーザー用など)個々のメニューのプロンプトは、すべてのセキュリティ設定のインポートを提供するコードを呼び出すことがあります。 つまり、すべての項目に対し、[Export All Security settings] オプションにリストされている、すべての項目から個別に設定をインポートすることも可能です。

  インポートされた項目の設定は、既存の設定に追加されます。既存の設定は置き換えられません。


◆プログラムによる設定のインポート

上記のすべてのクラスには、エクスポートメソッドに一致するインポートメソッドがあります。

@Josh Lubarrさんが書いた元の記事へ
ディスカッション (0)0
続けるにはログインするか新規登録を行ってください