説明
このステートメントは、システム管理者がユーザーに権限を付与するために使用します。対象権限、システム権限、ロールを含みます。
権限要件
GRANT ステートメントを実行する際、現在のユーザーは付与される権限およびその権限を再付与する権限を保持していなければなりません。例えば、ユーザー user1 がユーザー user2 にテーブル tbl1 の SELECT 権限を付与したい場合、ユーザー user1 はテーブル tbl1 の SELECT 権限と、その権限を再付与する権限を持っている必要があります。
説明
ユーザーに権限を付与した後、その権限が有効になるには、ユーザーがOceanBaseデータベースに再接続する必要があります。
構文
/* 対象権限の付与 */
GRANT {obj_all_col_priv [, obj_all_col_priv...]}
ON obj_clause
TO {grant_user [, grant_user...]}
[WITH GRANT OPTION]
/* システム権限またはロールの付与 */
GRANT obj_all_col_priv [, obj_all_col_priv...]
TO grantee_clause
[WITH ADMIN OPTION]
grantee_clause:
grant_user [, grant_user...]
| grant_user IDENTIFIED BY password
obj_all_col_priv:
role
| sys_and_obj_priv [(column_list)]
| ALL [PRIVILEGES] [(column_list)]
| READ
| WRITE
obj_clause:
schema_name.relation_name
| LOCATION location_name
パラメータの説明
パラメータ |
説明 |
|---|---|
| obj_all_col_priv | 授与する権限を指定します。権限またはロールを付与することで、ユーザーに直接または間接的に権限を付与できます。複数の権限をユーザーに付与する場合は、権限タイプを半角カンマ(,)で区切ります。具体的な権限タイプとその説明については、Oracleモードの権限分類を参照してください。 |
| obj_clause | 権限付与の対象を指定します。詳細については、以下の obj_clause を参照してください。 |
| grant_user | 権限を付与するユーザーまたはロールを指定します。以下の値があります。
|
| IDENTIFIED BY password | 権限を付与されるユーザーのパスワードを指定します。ここでのパスワードは平文であり、dba_users テーブルに格納された後、サーバー側で暗号化されます。パスワードに特殊文字 ~!@#%^&*_-+=`|(){}[]:;',.?/ が含まれる場合は、英字の二重引用符("")で囲む必要があります。 |
| WITH GRANT OPTION | 権限の再付与を許可するかどうかを指定します。権限を取り消す際には、このオプションが設定されている場合にのみ連鎖します。 |
| WITH ADMIN OPTION | 権限の再付与を許可するかどうかを指定します。権限を取り消す際には、このオプションが設定されていない場合にのみ連鎖します。 |
| role | 付与するロールを指定します。以下の値があります。
|
obj_clause
schema_name.relation_name:権限が適用される対象のタイプがデータベースオブジェクト(テーブル、ビュー、シーケンスなど)であることを示します。LOCATION location_name:権限が適用される対象のタイプがLocationであることを示します。ユーザーに付与できるLocationオブジェクトの権限は以下のとおりです:READ:Locationオブジェクトに対する読み取り権限を示します。WRITE:Locationオブジェクトに対する書き込み権限を示します。
説明
OceanBaseデータベースV4.4.x系では、
GRANTステートメントはV4.4.1バージョンからLOCATIONパラメータおよび対応するREADとWRITE権限をサポートしています。
例
ユーザー
user1にCREATE VIEW権限を付与し、他のユーザーに同じ権限を委譲することを許可します。obclient> GRANT CREATE VIEW TO user1 WITH ADMIN OPTION;ユーザー
user1にCONNECTロールを付与し、user1のパスワードを変更します。obclient> GRANT CONNECT TO user1 IDENTIFIED by '********';実行後、
dba_usersテーブルのuser1ユーザーのパスワードを確認すると、最新に設定したパスワードに更新されていることが確認できます。COMMENT ANY TABLE 権限をロール
role1に付与します。obclient> GRANT COMMENT ANY TABLE TO role1;user006に Location のオブジェクトlocal_tへの読み取り権限を付与します。obclient> GRANT READ ON LOCATION local_t TO user006;