Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

例 2 : %Development リソース

この例では、%Development:USE 特権を持つロールを作成します。このロールは、そのメンバにターミナルを使用する特権を与えます。ただし、このロールはそのメンバに USER データベース内のコードを実行する特権を与えません。

  1. まだ SecurityTutorial.AuthorizationTests クラスを Caché の USER ネームスペースにインポートしていなければ、ここでインポートします。このクラスは、Authorization.xml にあります。

  2. DevOnly という名前のロールを作成します。

  3. この新しいロールに %Development:USE 特権を割り当てます。

  4. ユーザを 1 人作成し、このユーザを DevOnly ロールに追加します。

  5. ターミナルを開き、$SYSTEM.Security.Login を使用して、前の手順で作成したユーザとしてログインします。DevOnly ロールは、ターミナルを使用する特権をこのユーザに与えます。

  6. SecurityTutorial.AuthorizationTestsHelloUser メソッドの実行を試みます。DevOnly ロールのメンバであるユーザは、USER データベースに保存されているコードを実行するための十分な特権を持っていません。実行しようとすると、<PROTECT> エラーが生成されます。

    generated description: devonlyrole 20131

コードが USER データベースに格納されていることが問題です。コードを実行するユーザは、USER データベースの読み取り許可が必要です。DevOnly ロールにはこのような許可が与えられていません。%DB_USER:READ 特権を追加して DevOnly を拡張すると、DevOnly ロールのメンバにコードの実行が許可されます。

Note:

Authorization.xmlinstall-dir\Dev\tutorials\security\ にあります。 Caché を標準インストールしている場合、install-dirC:\InterSystems\Cache になります。スタジオを使用して、アプリケーション・ファイルを USER ネームスペースにインポートします。手順については、"ターミナルを使用したコードのインポート" を参照してください。この例では、Caché が最小のセキュリティでインストールされていることを前提としています。

FeedbackOpens in a new tab