説明
このステートメントは、システム管理者がユーザーに権限を付与するために使用されます。これには、オブジェクト権限、システム権限、ロールが含まれます。
権限要件
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)]
obj_clause:
schema_name.relation_name
パラメータの説明
| パラメータ | 説明 |
|---|---|
| obj_all_col_priv | 指定された権限。権限またはロールを付与することで、ユーザーに直接または間接的に権限を付与できます。複数の権限をユーザーに付与する場合は、権限タイプを英語のカンマ(,)で区切ります。具体的な権限タイプとその説明については、Oracleモードにおける権限分類を参照してください。 |
| obj_clause | 権限付与対象を指定します。値は以下のとおりです:schema_name.relation_name。 |
| grant_user | 権限を付与するユーザーまたはロールを指定します。値は以下のとおりです。
|
| IDENTIFIED BY password | 権限付与対象ユーザーにパスワードを指定します。このパスワードは平文であり、dba_usersテーブルに保存された後、サーバー側では暗号化されて保存されます。パスワードに特殊文字 ~!@#%^&*_-+=`|(){}[]:;',.?/ が含まれる場合は、英語のダブルクォート("")で囲む必要があります。 |
| WITH GRANT OPTION | 権限の再付与を許可するかどうかを指定します。権限の取り消し時にはカスケードされません。 |
| WITH ADMIN OPTION | 権限の再付与を許可するかどうかを指定します。権限の取り消し時にはカスケードされません。 |
| role | 権限を付与するロールを指定します。値は以下のとおりです。
|
例
ユーザー
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に付与します。GRANT COMMENT ANY TABLE TO role1;