SHOW GRANTS: 함수 및 프로시저에 대한 권한 부여 출력 변경 사항(보류 중)¶
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