説明
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