説明
V4.3x系では、このビューはV4.3.3バージョンから導入されました。V4.2.x系では、このビューはV4.2.4バージョンから導入されました。
機能の概要
ビュー role_table_grants は、現在のセッションでユーザーに付与された有効なロールのテーブルレベル権限情報、およびこれらのロールが他のロールに付与したテーブルレベル権限情報を表示します。
フィールドの説明
| フィールド名 | タイプ | NULLを許容するか | 説明 |
|---|---|---|---|
| GRANTOR | varchar(97) | YES | このロールに権限を付与するアカウントのユーザー名部分。 |
| GRANTOR_HOST | varchar(256) | YES | このロールに権限を付与するアカウントのホスト部分。 |
| GRANTEE | varchar(32) | NO | このロールに対応するアカウントのユーザー名部分。 |
| GRANTEE_HOST | varchar(255) | NO | このロールに対応するアカウントのホスト名部分。 |
| TABLE_CATALOG | varchar(3) | NO | このロールに付与されたディレクトリの名前。この値は常にdefです。 |
| TABLE_SCHEMA | varchar(64) | NO | このロールに付与されたテーブルが属するデータベース名。 |
| TABLE_NAME | varchar(64) | NO | このロールに付与されたテーブルの名前。 |
| PRIVILEGE_TYPE | varchar(90) | NO | 付与される権限。この値は、テーブルレベルで付与可能な任意の権限です。 |
| IS_GRANTABLE | varchar(3) | NO | このロールの権限を他のユーザーに付与できるかどうか。 |
クエリ例
ロールとテーブルを作成します。
obclient [test]> CREATE ROLE employee;obclient [test]> CREATE TABLE tbl1(c1 int, c2 int, c3 int);ロールにテーブルレベルの権限を付与します。
obclient [test]> GRANT DROP,UPDATE,SELECT ON test.tbl1 TO employee WITH GRANT OPTION;ユーザーにロールを付与します。
obclient [test]> GRANT employee TO user1;ユーザー
user1を使用してデータベースに接続します。現在のセッションで
employeeロールを有効化します。obclient [test]> SET ROLE employee;現在のセッションでユーザーに付与された有効なロールのテーブルレベルの権限情報を確認します。
obclient [test]> USE information_schema;obclient [test]> SELECT * FROM information_schema.role_table_grants;クエリ結果は次のとおりです:
+---------+--------------+-----------+--------------+---------------+--------------+------------+--------------------+--------------+ | GRANTOR | GRANTOR_HOST | GRANTEE | GRANTEE_HOST | TABLE_CATALOG | TABLE_SCHEMA | TABLE_NAME | PRIVILEGE_TYPE | IS_GRANTABLE | +---------+--------------+-----------+--------------+---------------+--------------+------------+--------------------+--------------+ | root | % | employee | % | def | test | tbl1 | Drop,Update,Select | YES | +---------+--------------+-----------+--------------+---------------+--------------+------------+--------------------+--------------+ 1 row in set