ユーザまたはロールに特権を与えます。
Synopsis
GRANT ACCESS ON namespace-list TO grantee
     [WITH GRANT OPTION] 

GRANT admin-privilege TO grantee 
     [WITH ADMIN OPTION]

GRANT role TO grantee
     [WITH ADMIN OPTION] 

GRANT %THRESHOLD literal TO grantee
     [WITH ADMIN OPTION]

GRANT simple-privilege ON table-list TO grantee 
     [WITH GRANT OPTION]
引数
namespace-list  特権が与えられるネームスペースのリスト。すべてのネームスペースに与える特権を指定するには、"*" を使用します。 
grantee  特権を与えられるユーザやロールのリスト。 有効な値は、ユーザやロールのリストまたはすべてのユーザを表す "*" です。 
admin-privilege  許可されている管理者レベル特権または管理者レベル特権のコンマで区切られたリスト。以下のうち 1 つ以上をさまざまな順序で使用してリストを構成します : %GRANT_ANY_PRIVILEGE、%CREATE_USER、%ALTER_USER、%DROP_USER、%CREATE_ROLE、%GRANT_ANY_ROLE、%DROP_ANY_ROLE、%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 
role  特権が与えられているロール、またはコンマで区切られたロールのリスト 
literal  ランタイム・リソース制限を表す定数 
simple-privilege  許可されている基本レベル特権または基本レベル特権のコンマで区切られたリスト以下のうち 1 つ以上を使用してリストを構成します : %ALTER、DELETE、SELECT、INSERT、UPDATE、および REFERENCES から成ります。もしくは、"ALL [PRIVILEGES]" または "*" のどちらかを引数の値として使用して、すべての特権を与えることもできます。 
table-list  特権が提供されるテーブルのリスト 
概要
GRANT コマンドは、指定したテーブルやビューや他のエンティティ上で指定したタスクを行う特権を、指定したユーザやロールに与えます。%msql 特権の変更を行っているユーザが許可を持っていることを確認するために、ローカル変数は他の GRANT 文よりも先に SQL ユーザに対して設定が必要です。
オブジェクト特権はユーザまたはロールに特定のオブジェクトにある特権を与えます。通常はテーブルまたはビューにある特権です。テーブルとビュー、またはそのどちらか一方に特権を与えると、オブジェクト特権になります。
管理者特権はユーザまたはロールに適用します。特定のオブジェクトに連携していないすべての特権 (つまりそのユーザやロールの一般特権) は、管理者特権とみなされます。
GRANT ACCESS ON コマンドでは、Caché ネームスペースに特権を与えます。Caché 構成マネージャの 'ODBC Namespace Security Enabled' フラグを使用すると、特権のないユーザがネームスペースにアクセスするのを制限できます(既定では、この値は "No" に設定されるため、ユーザはアクセスできます)。
GRANT %THRESHOLD コマンドをでは、それ以上の値では処理が許可されないしきい値を指定することで、特定のユーザやロールが利用するシステム・リソースを制限できます。ユーザがクエリやレポートを実行する場合、使用するランタイム・リソースはしきい値と比較され、しきい値を超える場合は Caché SQL はしきい値違反エラー (SQLCODE = 113) を返し、クエリやレポートの実行を停止します。
WITH GRANT OPTION 節
オブジェクトの所有者は自動的に、このオブジェクトに関わるすべての特権を維持します。GRANT 文の TO 句は、アクセスが許可されているユーザやロールを指定します。grantee 指定する TO オプションを使用した後は、WITH GRANT OPTION キーワードを任意で指定して、grantee が他のユーザに同じ特権を与えることもできます。
例えば、以下のコマンドを使用して、EMPLOYEES テーブルの %ALTER、SELECT、または INSERT 特権を Chris というユーザに与えることができます。
GRANT %ALTER, SELECT, INSERT
     ON EMPLOYEES
     TO Chris
Chris に他のユーザに対するこれらの特権を与えることができるようにするために、GRANT コマンドは WITH GRANT OPTION 句を含みます。
GRANT %ALTER, SELECT, INSERT
     ON EMPLOYEES
     TO Chris WITH GRANT OPTION
%SQLCatalog_SQLUserPrivs() 呼び出しを使用した GRANT 文の結果を見出すことができます。
例えば、以下の GRANT 文を使用した後は、
GRANT %ALTER ON TestTab1Usr1 TO PUBLIC WITH GRANT OPTION
GRANT SELECT ON TestTab2Usr1 TO PUBLIC
%SQLCatalog_SQLUserPrivs('_PUBLIC') への呼び出しは、以下の結果セットを返します。
"TABLE_TYPE", "TABLE_NAME", "PRIVILEGE", "GRANTED_BY", "GRANT_OPTION"
"TABLE", "TestTab1Usr1", "%ALTER", "_SYSTEM", "Yes"
"TABLE", "TestTab2Usr1", "SELECT", "_SYSTEM", "No"
GRANT_OPTION (最初の行の最後のフィールド) の "Yes" は、WITH GRANT OPTION の使用を指示しています。
関連項目
REVOKE ユーザ