説明
V4.3x系では、このビューはV4.3.3バージョンから導入されました。V4.2.x系では、このビューはV4.2.4バージョンから導入されました。
機能の概要
ビュー role_routine_grants は、現在のセッションでユーザーに付与された有効なロールのルーチン権限情報、およびこれらのロールが他のロールに付与したルーチン権限情報を表示します。
フィールドの説明
| フィールド名 | タイプ | NULL値を許容するか | 説明 |
|---|---|---|---|
| GRANTOR | varchar(97) | YES | このロールに権限を付与するアカウントのユーザー名部分。 |
| GRANTOR_HOST | varchar(256) | YES | このロールに権限を付与するアカウントのホスト部分。 |
| GRANTEE | varchar(32) | NO | このロールに対応するアカウントのユーザー名部分。 |
| GRANTEE_HOST | varchar(255) | NO | このロールに対応するアカウントのホスト名部分。 |
| SPECIFIC_CATALOG | varchar(3) | NO | このロールに付与されたルーチンが属するディレクトリの名前。この値は常にdefです。 |
| SPECIFIC_SCHEMA | varchar(64) | NO | このロールに付与されたルーチンが属するデータベース名。 |
| SPECIFIC_NAME | varchar(64) | NO | このロールに付与されたルーチンの名前。 |
| ROUTINE_CATALOG | varchar(3) | NO | このロールに付与されたルーチンが属するディレクトリの名前。この値は常にdefです。 |
| ROUTINE_SCHEMA | varchar(64) | NO | このロールに付与されたルーチンが属するデータベース名。 |
| ROUTINE_NAME | varchar(64) | NO | このロールに付与されたルーチンの名前。 |
| PRIVILEGE_TYPE | varchar(90) | NO | 付与される権限。この値は、ルーチンレベルで付与可能な任意の権限です。 |
| IS_GRANTABLE | varchar(3) | NO | このロールの権限を他のユーザーに付与できるかどうか。 |
クエリ例
ロールと関数を作成します。
ロール
employeeを作成します:obclient [test]> CREATE ROLE employee;関数
add_numbersを作成します:obclient [test]> DELIMITER //obclient [test]> CREATE FUNCTION test.add_numbers(a INT, b INT) RETURNS INT BEGIN RETURN a + b; END;//obclient [test]> DELIMITER ;ロールにルーチン権限を付与します。
obclient [test]> GRANT EXECUTE,ALTER ROUTINE ON test.add_numbers TO employee;ユーザーにロールを付与します。
obclient [test]> GRANT employee TO user1;ユーザー
user1を使用してデータベースに接続します。現在のセッションで
employeeロールを有効化します。obclient [test]> SET ROLE employee;現在のセッションでユーザーに付与された有効なロールのルーチン権限情報を確認します。
obclient [test]> USE information_schema;obclient [information_schema]> SELECT * FROM information_schema.role_routine_grants;クエリ結果は次のとおりです:
+---------+--------------+-----------+--------------+------------------+-----------------+---------------+-----------------+----------------+--------------+-----------------------+--------------+ | GRANTOR | GRANTOR_HOST | GRANTEE | GRANTEE_HOST | SPECIFIC_CATALOG | SPECIFIC_SCHEMA | SPECIFIC_NAME | ROUTINE_CATALOG | ROUTINE_SCHEMA | ROUTINE_NAME | PRIVILEGE_TYPE | IS_GRANTABLE | +---------+--------------+-----------+--------------+------------------+-----------------+---------------+-----------------+----------------+--------------+-----------------------+--------------+ | root | % | employee | % | def | test | add_numbers | def | test | add_numbers | Execute,Alter Routine | NO | +---------+--------------+-----------+--------------+------------------+-----------------+---------------+-----------------+----------------+--------------+-----------------------+--------------+ 1 row in set