SHOW GRANTS: Changes to output for grants on functions and procedures
注意
この動作変更は2026_01バンドルにあります。
バンドルの現在のステータスについては、 バンドル履歴 をご参照ください。
SHOW GRANTS コマンドの出力では、名前列の値は、関数とプロシージャのために変更されます。
- 変更前:
name 列には、引数の名前と型、および戻り型が含まれます。
たとえば、次の関数の場合
CREATE FUNCTION area_of_circle(radius FLOAT)
RETURNS FLOAT
...
名前列の値は次のとおりです。
MY_DB.MY_SCHEMA."AREA_OF_CIRCLE(RADIUS FLOAT):FLOAT"
次のプロシージャの場合
CREATE PROCEDURE output_message(message VARCHAR)
RETURNS VARCHAR
...
名前列の値は次のとおりです。
MY_DB.MY_SCHEMA."OUTPUT_MESSAGE(MESSAGE VARCHAR):VARCHAR"
- 変更後:
name 列には、引数の型のみが含まれます。
たとえば、次の関数の場合
CREATE FUNCTION area_of_circle(radius FLOAT)
RETURNS FLOAT
...
名前列の値は次のとおりです。
MY_DB.MY_SCHEMA.AREA_OF_CIRCLE(FLOAT)
次のプロシージャの場合
CREATE PROCEDURE output_message(message VARCHAR)
RETURNS VARCHAR
...
名前列の値は次のとおりです。
MY_DB.MY_SCHEMA.OUTPUT_MESSAGE(VARCHAR)
この変更により、実行する GRANT および REVOKE ステートメントの名前列の値が使いやすくなります。
たとえば、 my_custom_role ロールに付与された関数とプロシージャの権限を取り消したいとします。SHOW GRANTS コマンドを実行できます。
SHOW GRANTS TO ROLE my_custom_role
->> SELECT "privilege", "granted_on", "name"
FROM $1
WHERE "granted_on" IN ('FUNCTION', 'PROCEDURE');
+-----------+------------+-----------------------------------------+
| privilege | granted_on | name |
|-----------+------------+-----------------------------------------|
| USAGE | FUNCTION | MY_DB.MY_SCHEMA.AREA_OF_CIRCLE(FLOAT) |
| USAGE | PROCEDURE | MY_DB.MY_SCHEMA.OUTPUT_MESSAGE(VARCHAR) |
+-----------+------------+-----------------------------------------+
その後、戻り値をコピーして REVOKE ステートメントに貼り付け、これらの権限を取り消すことができます。
REVOKE USAGE ON FUNCTION MY_DB.MY_SCHEMA.AREA_OF_CIRCLE(FLOAT) FROM ROLE my_custom_role;
REVOKE USAGE ON PROCEDURE MY_DB.MY_SCHEMA.OUTPUT_MESSAGE(VARCHAR) FROM ROLE my_custom_role;
参照:2190