コンピュータ ウィンドウズ インターネット

1c ディレクトリ権限へのアクセスを制限します。 RLS レコード レベルでのアクセスの制限。 アクセス制限アクション

1C プログラムにはアクセス権システムが組み込まれており、これは [Configurator] - [一般] - [役割] にあります。

このシステムはどのような特徴を持ち、その主な目的は何ですか? これにより、ユーザーの立場やアクティビティの種類に対応する権限のセットを記述することができます。 このアクセス権システムは本質的に静的です。つまり、管理者がアクセス権を 1C に設定すると、そのとおりになります。 静的アクセス権システムに加えて、動的 (RLS) という 2 番目のアクセス権システムがあります。 本システムでは、運用中に指定されたパラメータに応じてアクセス権が動的に計算されます。

1C での役割

さまざまなプログラムで最も一般的なセキュリティ設定は、さまざまなユーザー グループに対するいわゆる読み取り/書き込み権限のセットであり、将来的には特定のユーザーをグループに含めたり除外したりすることもできます。 このようなシステムは、例えば、Windows AD (Active Directory) オペレーティング システムで使用されます。 1C ソフトウェアで使用されるセキュリティ システムはロールと呼ばれます。 それは何ですか? 1C の役割は、ブランチ「一般 - 役割」の構成にあるオブジェクトです。 これらの 1C ロールは、権限が割り当てられているグループです。 将来的には、各ユーザーをこのグループに含めたり、グループから除外したりすることができます。

ロール名をダブルクリックすると、そのロールの権利エディターが開きます。 左側にはオブジェクトのリストがあり、それらのいずれかをマークすると、右側に可能なアクセス権のオプションが表示されます。

— 読み取り: データベース テーブルからレコードまたはその部分的なフラグメントを取得します。
— 追加: 既存のレコードを保存しながら新しいレコードを追加します。
— 変更: 既存のレコードに変更を加えます。
— 削除: 一部のレコードを残し、残りは変更しません。

すべてのアクセス権は 2 つの主要なグループに分類できることに注意してください。これは「単なる」権利であり、これに「インタラクティブ」特性が追加されたまさに権利です。 これはどういう意味ですか? そしてポイントはこれです。

ユーザーが処理などの何らかのフォームを開き、同時にそれをマウスでクリックすると、組み込み 1C 言語のプログラムがドキュメントの削除などの特定のアクションの実行を開始します。 「単純に」1C 権利は、プログラムによって実行されるそのようなアクションを許可する責任があります。

ユーザーがジャーナルを開いて、キーボードから独自に何かを入力し始める場合 (新しい文書など)、1C の「対話型」権限がそのようなアクションを許可する責任があります。 各ユーザーは一度に複数のロールにアクセスでき、権限は合計されます。

1C の RLS

ディレクトリ (またはドキュメント) へのアクセスを有効にしたり、無効にしたりできます。 「少しオンにする」ことはできません。 この目的のために、RLS と呼ばれる 1C 役割システムの特定の拡張機能があります。 これは、アクセスに部分的な制限を導入する動的アクセス権システムです。 たとえば、特定の組織と倉庫のドキュメントのみがユーザーに利用可能になり、残りは表示されません。

RLS システムは、その複雑なスキームを理解するのが非常に難しいため、非常に慎重に使用する必要があることに留意する必要があります。たとえば、異なるユーザーが生成した同じレポートを比較するときに、異なるユーザーが疑問を抱く可能性があります。 この例を考えてみましょう。 特定のディレクトリ (組織など) と特定の権限 (読み取りなど) を選択します。つまり、1C ロールに対して読み取りを許可します。 この場合、リモート パネルの [データ アクセス制限] でリクエストのテキストを設定し、設定に応じて False または True に設定します。 通常、設定は特殊情報レジスタに保存されます。

このリクエストは、すべてのディレクトリ エントリに対して (読み取りを整理しようとするときに) 動的に実行されます。 これは次のように機能します。セキュリティ リクエストが割り当てたレコード - True、ユーザーには表示されますが、他のユーザーには表示されません。 制限が確立されている 1C 権利は灰色で強調表示されます。

同一の RLS 設定をコピーする操作は、テンプレートを使用して実行されます。 まず、セキュリティ リクエストを反映する MyTemplate などの名前のテンプレートを作成します。 次に、アクセス権設定で、このテンプレートの名前を「#MyTemplate」のように指定します。

ユーザーが 1C エンタープライズ モードで作業している場合、RLS に接続すると、「権限が不十分です」(たとえば、XXX ディレクトリを読み取る権限がありません) のようなエラー メッセージが表示されることがあります。 これは、RLS システムが一部のレコードの読み取りをブロックされていることを示します。 このメッセージが再度表示されないようにするには、リクエスト テキストに ALLOWED という単語を入力する必要があります。

1C:Enterprise プラットフォームの 8 番目のバージョン (現在は 8.3) には、「7」に関連して多くの変更が加えられており、その中で、レコード レベルでアクセス権を制限するメカニズムは特に注目に値します。 RLS を使用せずにロールのみを使用することも理論的には可能ですが、RLS を使用すると、より詳細なアクセス設定を実現できます。 ただし、この仕組みを適切に動作させるには、その本質を明確に理解し、1C での十分な開発経験が必要です。

RLSとは何ですか?

この機能の本質は、特定のユーザーまたはユーザーのグループがデータベース テーブルのテーブルまたはフィールドにアクセスすることを開発者が防止できることです。 通常、制限は、1C ユーザーが機密の機密情報を表示および編集できないようにするために使用されます。たとえば、グループに含まれる会社の従業員を、その組織のドキュメントのみの表示に制限します。 また、レコード レベルでアクセス権を制限するメカニズムを使用して、インターフェイスから不要な情報を削除できます。

RLS 制限のクエリを作成できるようにするには、ロールを作成するか、既存のロールを取得する必要があります。 1C 8.3 での RLS のセットアップは、次のユーザー アクションに使用できます。

  • 追加;
  • 読む;
  • 消去;
  • 変化。

アクセスをカスタマイズするための幅広い可能性に加えて、RLS には欠点もあります。

  1. リクエストは構文ルールを考慮して組み込み言語で作成する必要があるため、開発者の資格要件。
  2. 状況を迅速にデバッグする能力の欠如。
  3. ロジックを記述する可能性が限られている: 複雑すぎる条件は依然として文書や参考書のモジュールに記述する必要があります。
  4. データベースのクライアントサーバー バージョンでは、クエリに含まれるテーブルが暗黙的に増大する可能性があります。 さらに、このプロセスを追跡することは非常に困難です。
  5. リソース要件。 RLS 制限は、クライアント マシンとサーバーで大量の電力を消費します。
  6. ほとんどのドキュメントは無料で入手できます。

1C RLS の設定後に発生する可能性のあるもう 1 つの問題はレポートです。 実際、開発者は考えられる RLS 制限を用意し、許可されたデータのみを表示するような方法でレポートを作成しています。 ユーザーが異なる RLS 制限を設定している場合、同じパラメータのレポート内のデータが異なる場合があります。 これにより疑問が生じる可能性があるため、RLS でレポートを設計したりクエリを作成したりするときは、これらの状況を考慮する必要があります。

RLS 制約を作成する

RLS 制限を追加するには、目的のロールを見つけてダブルクリックして開く必要があります。

開いたウィンドウには、「権利」と「制限テンプレート」の 2 つのタブが含まれています。 特定のアクションに特定の制限を課すには、それを選択し、右下の部分にある緑色のプラスをクリックする必要があります。 1C に組み込まれている言語で 1C RLS 制限を設定できる行が表示されます。


1C 構文を知っている場合 (手の甲など)、「アクセス制限」フィールドに直接書き込むことができます。 1C 開発者は、クエリ コンストラクターを開く機能を提供しています。これは、作成できる制限を示し、役立ちます。 これを開くには、3 つの点のボタン (選択) または F4 をクリックする必要があります。すると、「クエリ ビルダー…」ボタンのあるウィンドウが表示されます。


表示されるウィンドウでは、このディレクトリだけでなく、他のシステム オブジェクトに対しても制限を設定できます。 これを行うには、「テーブルとフィールド」タブにテーブルとフィールドを追加する必要があります。 「Nomenclature」ディレクトリのフィールドに制限を登録し、「OK」をクリックします。 変数の名前には注意してください。RLS パラメータはユーザー セッションの開始時に設定され、メタデータ オブジェクトに含まれている必要があります。


「制約テンプレート」タブでは、同じ RLS 設定を 1C 8.3 にコピーするときに必要なクエリを指定します。 テンプレートを追加した後、アクセス権設定でその名前を使用できます。

複数のロールに同時に制限を追加することもできます。 これを行うには、構成ツリーで「役割」セクションを右クリックし、「すべての役割」を選択する必要があります。


結論として、この記事は 1C 開発コンサルタントを対象としており、主に 1C:Enterprise 開発の経験がある人に役立つことを指摘しておきます。 一見単純そうに見えますが、セマンティクスの知識と、権利を正しく分配するための自社または顧客の組織のビジネス プロセスの構造を理解するには、一定レベルの知識と経験が必要です。

RLS- これは、特定のユーザー (ユーザー グループ) に対してデータベース テーブルに条件を設定し、不必要なものが表示されないようにする開発者の機能です。 条件はブール型です。 条件が true と評価された場合はアクセスが許可され、それ以外の場合は拒否されます。

RLS は、通常のアクセス権の設定と同時に使用されます。 したがって、RLS の構成を開始する前に、構成オブジェクトに通常の権限を割り当てる必要があります。

RLS は、次のタイプのアクセス権に使用されます。

  • 読む
  • 追加
  • 変化
  • 除去

RLS の設定方法

構成方法の簡単な例を見てみましょう。 スクリーンショットはバージョン 1C Enterprise 8.2 (8.2.9.356) で撮影されました。 制約テキスト テンプレートの構文は、書籍『開発者ガイド』の 8.2 のドキュメントで説明されています。 パート 1」で説明したので、これについては説明しません。

したがって、最初のステップは、既存の役割ごとに制約テンプレートを定義することです。

その後、指定されたテンプレートに基づいて、必要なオブジェクトに制限を設定します。 条件のテキストを編集するには、データ アクセス制限デザイナーを使用できます。

複数のロールを編集するには、「すべてのロール」ウィンドウで管理すると便利です。

[すべてのアクセス制限] ウィンドウを使用して、条件を他のロールにコピーできます。 テンプレートは他のロールに手動でのみコピーできます。

それだけです。 結果を確認できます。

RLS を使用するデメリット:

  1. レコード レベルでアクセス制限メカニズムを使用すると、クエリに参加するテーブルが暗黙的に増加し、データベースのクライアント サーバー モードでエラーが発生する可能性があります。
  2. 書き込み制御のための複雑なアプリケーション ロジックを実装するのは困難または不可能な場合があります。 このような場合は、OnWrite() プロシージャで条件を使用することをお勧めします。
  3. 条件 (クエリ) を作成するには、開発者に特定の資格が必要です。
  4. 条件 (クエリ) をデバッグできないことにより、さらに問題が発生する可能性があります。

一般的な構成では、組織、取引先、品目、倉庫、部門、個人、候補アプリケーションなどのオブジェクトに対して、レコード レベルでの権限を対話的に設定できます。

レコード レベルでのアクセス権制限はかなりリソースを大量に消費するメカニズムであり、設定する制限が複雑になればなるほど、特に大規模なデータベースの場合、プログラムの動作が遅くなることに注意してください。

古典的な問題: ユーザーにオブジェクトへのアクセスを許可し、 ただし、すべての要素/ドキュメントではなく、一部のみが対象です。

たとえば、マネージャーが自分のクライアントのレポートのみを表示できるようにします。

あるいは制限かもしれない 「一部を除いてすべて」.
または、参考書・書類の制限ではなく、 データを登録する

たとえば、ユーザーがレポートを使用してパートナーへの支払いに関するデータを抽出できないようにします。

本質的に、これは「このユーザーが見ることができるもの、そして推測する必要がないもの」の微妙で非常に柔軟な設定です。

なぜRLSなのか?

ほとんどの実装では、異なるユーザーがデータベース内の情報への異なるレベルのアクセスを設定する必要があります。

構成では、特別なメタデータ オブジェクト (ロール) がデータへのアクセス権を担当します。 各情報ベース ユーザーには 1 つ以上のロールが割り当てられます。 これらは、特定のメタデータ オブジェクトに対する操作 (読み取り、書き込み、投稿など) が可能かどうかを決定します。

しかし、それだけではありません。

多くの場合必要になります 特定のオブジェクトへのアクセスを開く/拒否するだけでなく、そのオブジェクト内のデータの一部へのアクセスを制限します。

この問題は、役割だけを使用して解決することはできません。– この目的のために、レコード レベル (RLS) でアクセスを制限するメカニズムが実装されています。

制約は、データに対するアクション (読み取り、書き込みなど) が許可される条件を表します。 – こうすることで、オブジェクト全体ではなく、そのデータの一部にのみアクセスを制限できます。

RLS について - 詳細: 8 つのビデオと PDF

これは一般的な 1C 管理タスクであるため、より詳細な資料を参照することをお勧めします。

ロールを使用したデータへのアクセスの制限

このビデオでは、ロールを使用してデータへのアクセスを制限する方法について説明します。 ロールによって、あるタイプの情報ベース オブジェクト (別のディレクトリですが、ディレクトリの特定の要素ではない) へのアクセスが制限されることが明確になりました。

レコードレベル制限 (RLS)

このビデオでは、レコード レベル (RLS) でのアクセス制限のメカニズムについて説明します。RLS では、ディレクトリ全体ではなく、情報データベースに保存されている要素に応じて、その個別の要素へのアクセスを構成できます。 同様の制限がロールにも規定されています。

Contractors ディレクトリのレコード レベルでのアクセス制限の実装

このビデオでは、管理対象アプリケーションのデモ構成で、管理者に割り当てられた自身の取引相手のみに管理者アクセスを設定する方法を説明します。

低レベルのレコードレベルのアクセス制限の仕組み

このビデオでは、レコード レベルのアクセス制限がある場合に、プラットフォームが DBMS サーバーに送信されたクエリを実行のために変換する方法について説明します。

複数のレコードレベルのアクセス制限を一緒に適用する

情報ベース ユーザーには複数のロールを割り当てることができます。 さらに、各役割にはレコード レベルで独自のアクセス制限がある場合があります。 このビデオでは、制限が課されたときにシステムがどのように動作するかを説明します。

ALL メソッドを使用して制限を課す

このビデオでは、レコード レベルで制限を課す最初の方法である ALL 方法について説明します。 この場合、選択範囲にアクセスが制限されているレコードが含まれていると、エラー メッセージが表示されます。

ALLOWED メソッドを使用して制限を課す

このビデオでは、レコードレベルの制限を課す最初の方法である ALLOWED 方法について説明します。 この場合、ユーザーがアクセス権を持っているレコードのみが選択に含まれます。

コースのいくつかのトピックを次に示します。

  • 1C:Enterprise 8 プラットフォームのインストールとアップデート – 手動および自動、Windows および Linux 用
  • 自動起動日常的な操作を実行する
  • 構成の更新 ユーザーモードから
  • 非標準構成の更新。 アップデート時のトラブルを回避する方法変更された標準構成
  • 自分で作る 配信cfuファイル
  • BSPツール:外部フォーム、書類記入処理など。
  • 使用法 無料の DBMS PostgreSQL
  • インストールと起動 サーバークラスター 1C:エンタープライズ8
  • 管理ユーティリティクラスターおよびワーカーサーバーのセットアップ用
  • 設定 RLS UPP 1.3 と ERP 2 の例を使用
  • もしそうならどうするか 情報セキュリティのデータが破損している
  • 設定 データ交換構成間
  • 組織 グループ開発
  • セットアップと使用 ハードウェア保護キー
  • 1C ソフトウェアライセンス: 外部機器への取り付けとバインディング

いずれの場合でも、ある時点で 1C を展開し、予約、アクセス権、さまざまな起動モードを構成し、データベースの整合性をテストし、サーバーの動作を確認するなどの作業を行う必要があります。

そしてそれはすぐに実行した方が良いです。

後々そんなことがないように 「…! さて、なんと...! あなたの……!」 – そしてその他の遺憾の意の表現:)

1C 8.3 でアクセス権を設定するにはどうすればよいですか?

この記事では、1C Accounting 8.3 でユーザーを操作する方法について説明します。

  • 新しいユーザーを作成する
  • 権限の構成 - プロファイル、役割、アクセスグループ
  • 1C 8.3 のレコード レベル (RLS) で権利制限を構成する方法 (組織ごとなど)

この手順は、会計プログラムだけでなく、BSP 2.x に基づいて構築された他の多くのプログラム (1C Trade Management 11、Salary and 人事管理 3.0、ERP 2.0、Small Firm Management など) にも適しています。

1C プログラム インターフェイスでは、ユーザー管理は「管理」セクションの「ユーザーと権限の設定」項目で実行されます。

1C で新しいユーザーを作成する方法

1C Accounting 3.0 で新しいユーザーを作成し、特定のアクセス権を割り当てるには、「管理」メニューに「ユーザーと権利の設定」項目があります。 そこに行きましょう:

ユーザーのリストは「ユーザー」セクションで管理されます。 ここで、新しいユーザー (またはユーザーのグループ) を作成したり、既存のユーザーを編集したりできます。 管理者権限を持つユーザーのみがユーザーのリストを管理できます。

「Accounting」という名前のユーザー グループを作成しましょう。そこには「Accountant 1」と「Accountant 2」という 2 人のユーザーが含まれます。

グループを作成するには、上の図で強調表示されているボタンをクリックし、名前を入力します。 情報ベース内に会計士の役割に適した他のユーザーがいる場合は、そのユーザーをすぐにグループに追加できます。 この例では何もないので、「記録して閉じる」をクリックします。

次に、ユーザーを作成しましょう。 グループにカーソルを置き、「作成」ボタンをクリックします。

フルネームには「Accountant 1」と入力し、ログイン名は「Accountant1」に設定されます(これはプログラムに入るときに表示されます)。 パスワードは「1」となります。

「プログラムへのログインを許可する」および「選択リストに表示する」チェックボックスがオンになっていることを必ず確認してください。オンになっていないと、認証中にユーザー自身が表示されなくなります。

「起動モード」は「自動」のままにしておきます。

アクセス権の設定 - 役割、プロファイル

次に、このユーザーの「アクセス権」を指定する必要があります。 ただし、最初に書き留める必要があります。そうしないと、上の図に示すように警告ウィンドウが表示されます。 「記録」をクリックし、「アクセス権」をクリックします。

会計士のプロフィールを選択します。 このプロファイルは標準であり、会計士に必要な基本的な権限が設定されています。 「記録」をクリックしてウィンドウを閉じます。

「ユーザー(作成)」画面で「保存して閉じる」をクリックします。 2人目の会計士も創設中です。 ユーザーが有効になっていて作業できることを確認します。

同じユーザーが複数のグループに所属できることに注意してください。

デフォルトでプログラムに含まれているものから会計士のアクセス権を選択しました。 ただし、一部の権利を追加または削除する必要がある状況もあります。 これを行うには、必要なアクセス権のセットを備えた独自のプロファイルを作成できます。

「グループプロファイルへのアクセス」セクションに進みましょう。

会計士が仕訳入力を閲覧できるようにする必要があるとします。

プロファイルを最初から作成するのは非常に労力がかかるため、「Accountant」プロファイルをコピーしましょう。

そして必要な変更を加えてみましょう。ロール「View log」を追加します。

新しいプロファイルに別の名前を付けてみましょう。 たとえば、「追加の会計士」などです。 そして、「登録ログを表示する」チェックボックスにチェックを入れます。

次に、前に作成したユーザーのプロファイルを変更する必要があります。

1C 8.3 (RLS) の録音レベルでの権利の制限

レコード レベル、または 1C で呼ばれる RLS (レコード レベル セキュリティ) で権利を制限することが何を意味するかを考えてみましょう。 この機会を得るには、適切なボックスをチェックする必要があります。

プログラムはアクションの確認を要求し、そのような設定によりシステムの速度が大幅に低下する可能性があることを通知します。 多くの場合、一部のユーザーが特定の組織のドキュメントを閲覧しないようにする必要があります。 このような場合にこそ、レコード レベルでのアクセス設定があります。

再びプロファイル管理セクションに移動し、「Accountant with Additions」プロファイルをダブルクリックして、「Access Restrictions」タブに移動します。

「アクセスタイプ」は「組織」を選択し、「アクセス値」は「すべて許可され、例外はアクセスグループに割り当てられます」を選択します。 「保存して閉じる」をクリックします。

ここで「ユーザー」セクションに戻り、たとえばユーザー「Accountant 1」を選択します。 「アクセス権」ボタンをクリックします。

「追加」ボタンを使用して、「Accountant 1」がデータを参照する組織を選択します。

注記! レコード レベルで権限を分離するメカニズムを使用すると、プログラム全体のパフォーマンスに影響を与える可能性があります。 プログラマーへの注意: RLS の本質は、1C システムが各リクエストに追加の条件を追加し、ユーザーがこの情報の読み取りを許可されているかどうかに関する情報を要求することです。

その他の設定

「設定のコピー」および「設定のクリア」セクションは、名前自体が物語っているため、何の疑問も生じません。 プログラムやレポートの外観に関する設定です。 たとえば、「Nomenclature」ディレクトリに美しい外観を設定した場合、それを他のユーザーに複製することができます。

「ユーザー設定」セクションでは、プログラムの外観を変更したり、使いやすくするための追加設定を行うことができます。

「外部ユーザーへのアクセスを許可する」チェックボックスを使用すると、外部ユーザーを追加して構成できます。 たとえば、1C に基づいてオンライン ストアを編成するとします。 ストアのクライアントは外部ユーザーになります。 アクセス権は通常のユーザーと同じ方法で設定されます。

資料に基づく:programmist1s.ru