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