レコードアクセス権の編集
アクセス権セットにより、ファイル内のレコードへのアクセスを制限することができます。ファイルに対して、次の内容を設定することができます。
 •
すべてのテーブルに適用するアクセス権:特定のアクセス権セットで、ファイル内のすべてのテーブルに存在するレコードを作成、編集、および削除できるかどうかを設定することができます。
 •
個々のテーブルに適用するカスタムアクセス権:各テーブルに対して、レコードアクセスを個別に設定することができます。たとえば、アクセス権セットにより次の操作を制限することができます。
 •
 •
各テーブル内の特定のレコードの表示、編集、または削除。各レコードに対して論理値の結果を返す計算式を使用してアクセス権を制限します。計算結果が「真」の場合は、レコードの表示などの特定の操作に対するアクセスが許可され、「偽」の場合は禁止されます。
 •
各テーブル内の特定のフィールドへのアクセスまたは変更。テーブル内にある1つまたは複数のフィールドへのアクセスが制限されている場合、ユーザには、フィールドデータの代わりに「<アクセスがありません>」と表示されます(制限されていない場合はデータが表示されます)。
現在使用中のファイルで定義されているテーブルに対しては、レコードアクセス権のみを設定することができます。使用中のファイルに他のファイル内のテーブルとのリレーションシップが設定されていて、それらのテーブルを保護したい場合は、他のファイルの方にアカウントとアクセス権セットを作成する必要があります。詳細については、データベースの保護についてを参照してください。
レコードアクセス権を編集するには、次の操作を行います。
1.
詳細については、新規アクセス権セットの作成または既存のアクセス権セットの編集を参照してください。
2.
[アクセス権セットの編集] ダイアログボックスで、[レコード:] ドロップダウンリストから、次のいずれかのオプションを選択します。
 
[すべてのテーブルでの作成、編集、および削除] を選択して、手順 10 に進みます。
すべてのテーブルでレコードの作成および編集を許可する(レコードの削除は禁止する)
[すべてのテーブルでの作成および削除] を選択して、手順 10 に進みます。
すべてのテーブルでレコードを表示する(レコードの作成、編集、および削除は禁止する)
[すべてのテーブルでの表示のみ] を選択して、手順 10 に進みます。
[すべてアクセスなし] を選択して、手順 10 に進みます。
[カスタムアクセス権...] を選択して、次の手順に進みます。
3.
[カスタムレコードアクセス権] ダイアログボックスで、カスタムアクセス権を編集する1つまたは複数のテーブルを選択します([新規フィールド] を選択すると、今後作成するすべてのテーブルで使用するアクセス権を設定することができます)。
[カスタムレコードアクセス権] ダイアログボックスに、ファイル内のテーブルと、各テーブルのカスタムアクセス権が表示されます。アクセス権を変更するには、変更するテーブルを選択してから、ダイアログボックスの下にある [アクセス権を設定:] 領域でアクセス権を選択します。
 •
 •
複数のテーブルを選択する場合は、Ctrl キー(Windows)または command キー(Mac OS)を押しながら各テーブルの名前をクリックします。
 •
一定範囲の連続するテーブルを選択する場合は、最初のテーブル名をクリックしてから、Shift キーを押しながら範囲内の最後のテーブル名をクリックします。
 •
すべてのテーブルを選択する場合は、[すべてを選択] をクリックします。
4.
レコードの表示、編集、作成、および削除に対してカスタムアクセス権を設定するには、[アクセス権を設定:] 領域の [表示]、[編集]、[作成]、および [削除] の一覧から、次のいずれかのオプションを選択します。
 
[制限...](選択されているテーブルが1つの場合に有効)
テーブル内の特定のレコードに対するアクセス権(レコードの表示、編集、または削除)を許可または禁止します。
[計算式の指定] ダイアログボックスで、計算式を入力して、[OK] をクリックします。計算式の指定の詳細については、レコード単位でアクセスを制限する式の入力を参照してください。
メモ  作成する表示、編集、作成、および削除アクセス権の組み合わせに矛盾がないように設定してください。たとえば、レコードの表示が禁止されているユーザに対して、レコードの削除を許可する必要はありません。
5.
テーブル内の特定のフィールドに対するアクセスまたは変更を制限するために、次の手順に進みます。この制限が必要ない場合は、手順9に進みます。
6.
7.
[カスタムフィールドアクセス権] ダイアログボックスで、アクセス権を制限する各フィールドを選択します([新規フィールド] を選択すると、今後作成するすべてのフィールドで使用するカスタムアクセス権を設定することができます)。続いて、次のいずれかのオプションを選択します。
 
メモ  テーブル内にある1つまたは複数のフィールドへのアクセスが制限されている場合、ユーザには、フィールドデータの代わりに「<アクセスがありません>」と表示されます(制限されていない場合はデータが表示されます)。
8.
[OK] をクリックします。
9.
[OK] をクリックします。
[アクセス権セットの編集] ダイアログボックスが表示されます。
10.
定義できるさまざまなアクセス権の詳細については、次のトピックを参照してください。
 •
 •
 •
 •
 •
11.
12.
 •
アカウントとアクセス権の設定が終了した場合は、[OK] をクリックします。続いて表示されるダイアログボックスで、[完全アクセス] アクセス権セットに割り当てられているアカウント名とパスワードを入力して、[OK] をクリックします。
 •
メモ
 •
[カスタムレコードアクセス権] および [カスタムフィールドアクセス権] ダイアログボックスでは、列タイトルの1つをクリックして、テーブルまたはフィールドの一覧の順序を変更することができます。昇順降順を切り替えるには、列タイトルを再度クリックします。
 •
 •
特定のレコードを表示できないユーザでもそれらのレコードをブラウズすることはできますが、ユーザには、フィールドデータの代わりに「<アクセスがありません>」と表示されます。
 •
ファイル内のレコード、フィールド、およびテーブルへのアクセスを制限すると、FileMaker Pro の多くの機能に影響します。影響を受ける一部の機能については、次の表を参照してください。
 
ルックアップおよび再ルックアップ
ルックアップと再ルックアップは、次の3つのコンポーネントにより定義されます。 いずれもデータアクセス権の影響を受ける可能性があります。
 •
リレーションシップで使用される照合フィールドには、少なくとも表示アクセス権が必要です。また、ルックアップのコピー元とコピー先の両方のテーブルで表示できないレコードでは、照合を実行することができないため、ルックアップは行われません。これには、関連する最初の照合レコード、および近似値(小さい値または大きい値)のコピーに使用されるレコードも含まれます。
アクセス権の制限のためにルックアップ処理で特定のレコードが省略された場合でも、エラーメッセージは表示されません。
リレーションシップが機能するには、少なくとも両方の照合フィールドに表示アクセス権が必要です。照合フィールドに基づいて表示する関連フィールドにも、少なくとも表示アクセス権が必要です。
対象レコードは、常に、少なくとも表示アクセス権を持つレコードのみが表示されるようにフィルタされます。アクセスを制限すると、Get (対象レコード数)関数の結果にも影響があります。
値一覧がフィールドの内容に基づいている場合、そのフィールドで表示アクセス権が禁止されていると、値一覧に値は表示されません。これは、ユーザが機密性の高い情報に誤ってアクセスしないようにするためです。アクセスを制限すると、ValueListItems 関数の結果も表示されなくなります。
表示アクセス権が禁止されているレコードのデータは、集計フィールドに表示される結果と、複数のレコードを集計する計算フィールドに表示される結果から除外されます。
検索/置換、フィールド内容の全置換、およびスペルチェック
スクリプトを完全アクセス権で実行するオプションを設定することができます。このオプションを設定すると、アクセス権が制限されているユーザでは通常は実行できない操作の実行をスクリプトに許可することができます。 このオプションが有効でない場合、制限されたデータに対してアクセスや変更を行うスクリプトステップは、いずれも失敗します。詳細については、スクリプトの作成と編集を参照してください。
Apple events
ユーザが Apple events を使用してデータを取得、設定、および削除する操作は、データアクセス権の影響を受ける場合があります。ユーザに適切なアクセス権がない場合、一部の Apple events コマンドが失敗する可能性があります。
レコード単位でアクセスを制限する式の入力
テーブル内の特定のレコードに対する表示、編集、および削除アクセス権を許可または禁止するには、アクセス権が許可されているかどうかを判断する論理計算式を指定する必要があります。データベースの各レコードに対して、計算式が「真」またはゼロ以外の結果に評価される場合はアクセスが許可され、「偽」またはゼロの場合はアクセスが禁止されます。次に2つの例を示します。
 •
現在のアカウントで作成されたレコードにのみアクセスを制限するには、次の操作を行います。Record_Created_By」という名前のテキストフィールドを定義し、レコードの作成時にアカウント名が自動的に入力されるように、フィールドに自動入力オプションを設定します (詳細については、入力値の自動化の定義を参照してください)。続いて、カスタムレコードアクセス権を定義する際に、次の計算式を使用します。
Record_Created_By = Get(アカウント名)
この計算式が「真」に評価されるレコードに対してのみ、ユーザにブラウズアクセスが許可されます。
 •
現在の日付で作成されたレコードにのみアクセスを制限するには、次の操作を行います。Record_creation_date」という名前のテキストフィールドを定義し、レコードの作成時に作成日が自動的に入力されるように、フィールドの自動入力オプションを設定します (詳細については、入力値の自動化の定義を参照してください)。続いて、カスタムレコードアクセス権を定義する際に、次の計算式を使用します。
Record_creation_date = Get(日付)
この計算式が「真」に評価されるレコードに対してのみ、ユーザにブラウズアクセスが許可されます。
ヒント  ほとんどの場合、テーブル内の特定のレコードの表示を禁止する計算式を指定するときは、同じ計算式を使用して、同じタイプのレコードの編集と削除も禁止することをお勧めします。このように設定しないと、レコードの表示が禁止されているユーザに対して、誤ってレコードの編集や削除が許可されてしまう可能性があります。
メモ
 •
レコードアクセス権を決定する論理計算式は、特にユーザが編集可能なフィールドの値を参照する場合、予期しない結果を返すことがあります。たとえば、特定のレコードに対するアクセス権のみに制限されているユーザが、あるレコードを編集したために、誤ってレコードへのアクセスが拒否されてしまう可能性があります。ユーザが、レコードアクセスの論理計算式の結果が「偽」に評価されるようにレコード内容を変更したとします。 そのユーザがレコードを終了すると、レコードの表示、編集、および削除のいずれも行うことができなくなります。変更内容はユーザがレコードを終了すると同時に確定されるため、このような変更を行ったユーザは、再びレコードにアクセスすることはできません。ほとんどの場合、レコードアクセスの計算式の値には、アカウント名、作成日、および修正日を含む自動入力フィールドのような、ユーザが直接編集できないフィールドの値を利用することをお勧めします。
また、ファイルが共有されていて、レコードアクセス権を決定する論理値計算に1つまたは複数のグローバルフィールドが含まれる場合も、一部のグローバルフィールドを別のテーブルに移動することによって、ネットワークパフォーマンスを向上できることがあります。詳細については、グローバルフィールド(グローバル格納を使用するフィールド)の定義の注意事項を参照してください。
 •
独自の対象レコードを持つ複数のウインドウを完全にサポートするために、集計値は対象レコードの一部になっています。(ファイルメーカーPro 6 以前のバージョンのように1つのファイルに対して1つの集計値が対応しているわけではありません。)1つのレコードを複数のウインドウに表示することができ、各ウインドウでは独自の対象レコードとソート順が使用されます。このような理由から、アクセス権の計算式を、特定の対象レコードを使用する値に依存する集計関数や取得関数に基づかせないでください。