ユーザまたはロールに特権を与えます。
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]
GRANT コマンドは、指定したテーブルやビューや他のエンティティ上で指定したタスクを行う特権を、指定したユーザやロールに与えます。%msql 特権の変更を行っているユーザが許可を持っていることを確認するために、ローカル変数は他の GRANT 文よりも先に SQL ユーザに対して設定が必要です。
オブジェクト特権はユーザまたはロールに特定のオブジェクトにある特権を与えます。通常はテーブルまたはビューにある特権です。テーブルとビュー、またはそのどちらか一方に特権を与えると、オブジェクト特権になります。
管理者特権はユーザまたはロールに適用します。特定のオブジェクトに連携していないすべての特権 (つまりそのユーザやロールの一般特権) は、管理者特権とみなされます。
GRANT ACCESS ON コマンドでは、Caché ネームスペースに特権を与えます。Caché 構成マネージャの 'ODBC Namespace Security Enabled' フラグを使用すると、特権のないユーザがネームスペースにアクセスするのを制限できます(既定では、この値は "No" に設定されるため、ユーザはアクセスできます)。
GRANT %THRESHOLD コマンドをでは、それ以上の値では処理が許可されないしきい値を指定することで、特定のユーザやロールが利用するシステム・リソースを制限できます。ユーザがクエリやレポートを実行する場合、使用するランタイム・リソースはしきい値と比較され、しきい値を超える場合は Caché SQL はしきい値違反エラー (SQLCODE = 113) を返し、クエリやレポートの実行を停止します。
オブジェクトの所有者は自動的に、このオブジェクトに関わるすべての特権を維持します。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 %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 の使用を指示しています。