version 11.3
GRANT[READ | READ_WRITE | ALL] ON sql_name TO sql_name
説明
GRANT コマンドはsql_name スキーマに割り当てるアクセス権を設定するために使用します。これらのアクセス権は、二番目のsql_name 引数で指定する4Dユーザグループに割り当てられます。
READ、READ_WRITEそしてALL キーワードを使用して、テーブルに許可されるアクセス権を指定します:
・READ は読み込みのみアクセスを設定します (データ)
・READ_WRITE は読み書きアクセスを設定します (データ)
・ALL はフルアクセスモードを設定します (データとストラクチャ)
アクセスコントロールは外部接続にのみ適用されます。Begin SQL/End SQLタグやSQL EXECUTEなどのコマンドで4D内で実行されるSQLコードは依然としてフルアクセスを持っています。
互換性に関するメモ: 以前のバージョンのデータベースをバージョン11.3以降に変換する際、(アプリケーション環境設定のSQLページで設定された) グローバルアクセス権がデフォルトスキーマに転送されます。
二番目の sql_name 引数には、スキーマにアクセス権を割り当てたい4Dユーザグループ名を指定しなければなりません。このグループは4Dデータベースに存在していなければなりません。
Note: 4Dはグループ名にスペースやアクセント文字を許可しますが、これはSQL標準で許可されていません。この場合、グループ名を [ と ] の間に記述します。例えば: GRANT READ ON [schema] TO [admins!]
データベースのDesignerとAdministratorのみがスキーマを変更できます。
参照整合性に関するメモ
4D はアクセス権とは独立して、参照整合性に関する原則を適用します。例えば2つのテーブルTable1とTable2があり、N対1のリレーション (Table2 -> Table1) で接続されているとします。 Table1はスキーマS1に属し、Table2はスキーマS2に属します。スキーマS1へのアクセス権を持つが、S2へのアクセス権を持たないユーザは、Table1のレコードを削除できます。この場合、参照整合性の原則を適用するため、Table1の削除されたレコードにリレートするTable2のレコードも削除されます。
例題
"Power_Users" グループに、MySchema1のデータへの読み書きアクセスを許可します:
GRANT READ_WRITE ON MySchema1 TO POWER_USERS
参照
ALTER SCHEMA, CREATE SCHEMA, REVOKE.