REVOKE - Amazon Redshift

REVOKE

사용자 또는 역할에서 테이블 생성, 삭제 또는 업데이트 권한과 같은 액세스 권한을 제거합니다.

ON SCHEMA 구문을 사용하는 데이터베이스 사용자 및 역할에 외부 스키마에 대한 사용 권한을 부여하거나 취소할 수 있습니다. AWS Lake Formation에서 ON EXTERNAL SCHEMA를 사용하는 경우 AWS Identity and Access Management(IAM) 역할에 대한 권한의 GRANT 및 REVOKE만 허용됩니다. 권한 목록은 구문을 참조하세요.

저장 프로시저의 경우 USAGE ON LANGUAGE plpgsql 권한은 기본적으로 PUBLIC에 허용됩니다. EXECUTE ON PROCEDURE 권한은 기본적으로 소유자 및 수퍼유저에게만 허용됩니다.

REVOKE 명령에서 제거하려는 권한을 지정합니다. 권한을 부여하려면 GRANT 명령을 사용합니다.

구문

REVOKE [ GRANT OPTION FOR ] { { SELECT | INSERT | UPDATE | DELETE | DROP | REFERENCES | ALTER | TRUNCATE } [,...] | ALL [ PRIVILEGES ] } ON { [ TABLE ] table_name [, ...] | ALL TABLES IN SCHEMA schema_name [, ...] } FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...] [ RESTRICT ] REVOKE [ GRANT OPTION FOR ] { { CREATE | TEMPORARY | TEMP | ALTER } [,...] | ALL [ PRIVILEGES ] } ON DATABASE db_name [, ...] FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...] [ RESTRICT ] REVOKE [ GRANT OPTION FOR ] { { CREATE | USAGE | ALTER } [,...] | ALL [ PRIVILEGES ] } ON SCHEMA schema_name [, ...] FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...] [ RESTRICT ] REVOKE [ GRANT OPTION FOR ] EXECUTE ON FUNCTION function_name ( [ [ argname ] argtype [, ...] ] ) [, ...] FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...] [ RESTRICT ] REVOKE [ GRANT OPTION FOR ] { { EXECUTE } [,...] | ALL [ PRIVILEGES ] } ON PROCEDURE procedure_name ( [ [ argname ] argtype [, ...] ] ) [, ...] FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...] [ RESTRICT ] REVOKE [ GRANT OPTION FOR ] USAGE ON LANGUAGE language_name [, ...] FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...] [ RESTRICT ]

다음은 Amazon Redshift 테이블 및 뷰에 대한 열 수준 권한에 대한 구문입니다.

REVOKE { { SELECT | UPDATE } ( column_name [, ...] ) [, ...] | ALL [ PRIVILEGES ] ( column_name [,...] ) } ON { [ TABLE ] table_name [, ...] } FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...] [ RESTRICT ]

다음은 지정된 역할을 가진 사용자 및 그룹에서 ASSUMEROLE 권한을 취소하는 구문입니다.

REVOKE ASSUMEROLE ON { 'iam_role' [, ...] | default | ALL } FROM { user_name | ROLE role_name | GROUP group_name | PUBLIC } [, ...] FOR { ALL | COPY | UNLOAD | EXTERNAL FUNCTION | CREATE MODEL }

다음은 Lake Formation과 Redshift Spectrum 통합을 위한 구문입니다.

REVOKE [ GRANT OPTION FOR ] { SELECT | ALL [ PRIVILEGES ] } ( column_list ) ON EXTERNAL TABLE schema_name.table_name FROM { IAM_ROLE iam_role } [, ...] REVOKE [ GRANT OPTION FOR ] { { SELECT | ALTER | DROP | DELETE | INSERT } [, ...] | ALL [ PRIVILEGES ] } ON EXTERNAL TABLE schema_name.table_name [, ...] FROM { { IAM_ROLE iam_role } [, ...] | PUBLIC } REVOKE [ GRANT OPTION FOR ] { { CREATE | ALTER | DROP } [, ...] | ALL [ PRIVILEGES ] } ON EXTERNAL SCHEMA schema_name [, ...] FROM { IAM_ROLE iam_role } [, ...]
생산자 측 데이터 공유 권한

다음은 REVOKE를 사용하여 사용자 또는 역할에서 ALTER 또는 SHARE 권한을 제거할 때 사용하는 구문입니다. 권한이 취소된 사용자는 더 이상 데이터 공유를 변경하거나 소비자에게 사용 권한을 부여할 수 없습니다.

REVOKE { ALTER | SHARE } ON DATASHARE datashare_name FROM { username [ WITH GRANT OPTION ] | ROLE role_name | GROUP group_name | PUBLIC } [, ...]

다음은 REVOKE를 사용하여 데이터 공유에 대한 소비자의 액세스 권한을 제거하는 구문입니다.

REVOKE USAGE ON DATASHARE datashare_name FROM NAMESPACE 'namespaceGUID' [, ...] | ACCOUNT 'accountnumber' [ VIA DATA CATALOG ] [, ...]

다음은 Lake Formation 계정에서 데이터 공유 사용 권한을 취소하는 방법의 예입니다.

REVOKE USAGE ON DATASHARE salesshare FROM ACCOUNT '123456789012' VIA DATA CATALOG;
소비자 측 데이터 공유 권한

다음은 datashare에서 생성된 특정 데이터베이스 또는 스키마에 대한 datashare 사용 권한에 대한 REVOKE 구문입니다. WITH PERMISSIONS 절을 사용하여 생성된 데이터베이스에서 사용 권한을 취소해도 기본 객체에 부여된 객체 수준 권한을 포함하여 사용자 또는 역할에 부여한 추가 권한은 취소되지 않습니다. 해당 사용자 또는 역할에 사용 권한을 다시 부여하면 사용 권한을 취소하기 전에 가졌던 추가 권한이 모두 유지됩니다.

REVOKE USAGE ON { DATABASE shared_database_name [, ...] | SCHEMA shared_schema} FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...]

범위가 지정된 권한을 사용하면 데이터베이스 또는 스키마 내 특정 유형의 모든 객체에 대한 권한을 사용자 또는 역할에 부여할 수 있습니다. 범위가 지정된 권한이 있는 사용자와 역할은 데이터베이스 또는 스키마 내의 모든 현재 및 미래 객체에 대한 지정된 권한을 갖습니다.

SVV_DATABASE_PRIVILEGES에서 데이터베이스 수준 범위 지정 권한의 범위를 볼 수 있습니다. SVV_SCHEMA_PRIVILEGES에서 스키마 수준 범위 지정 권한의 범위를 볼 수 있습니다.

다음은 사용자 또는 역할에서 범위가 지정된 권한을 취소할 때 사용하는 구문입니다. 범위가 지정된 권한에 대한 자세한 내용은 범위가 지정된 권한 섹션을 참조하세요.

REVOKE [ GRANT OPTION ] { CREATE | USAGE | ALTER } [,...] | ALL [ PRIVILEGES ] } FOR SCHEMAS IN DATABASE db_name FROM { username | ROLE role_name } [, ...] REVOKE [ GRANT OPTION ] { { SELECT | INSERT | UPDATE | DELETE | DROP | ALTER | TRUNCATE | REFERENCES } [, ...] } | ALL [PRIVILEGES] } } FOR TABLES IN {SCHEMA schema_name [DATABASE db_name ] | DATABASE db_name } FROM { username] | ROLE role_name} [, ...] REVOKE [ GRANT OPTION ] { EXECUTE | ALL [ PRIVILEGES ] } FOR FUNCTIONS IN {SCHEMA schema_name [DATABASE db_name ] | DATABASE db_name } FROM { username | ROLE role_name | } [, ...] REVOKE [ GRANT OPTION ] { EXECUTE | ALL [ PRIVILEGES ] } FOR PROCEDURES IN {SCHEMA schema_name [DATABASE db_name ] | DATABASE db_name } FROM { username | ROLE role_name | } [, ...] REVOKE [ GRANT OPTION ] USAGE FOR LANGUAGES IN {DATABASE db_name} FROM { username | ROLE role_name } [, ...]

범위가 지정된 권한은 함수에 대한 권한과 프로시저에 대한 권한을 구별하지 않습니다. 예를 들어 다음 문은 Sales_schema 스키마의 함수와 프로시저 모두에 대한 bobEXECUTE 권한을 취소합니다.

REVOKE EXECUTE FOR FUNCTIONS IN SCHEMA Sales_schema FROM bob;

다음은 Amazon Redshift의 기계 학습 모델 권한을 위한 구문입니다.

REVOKE [ GRANT OPTION FOR ] CREATE MODEL FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...] [ RESTRICT ] REVOKE [ GRANT OPTION FOR ] { EXECUTE | ALL [ PRIVILEGES ] } ON MODEL model_name [, ...] FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...] [ RESTRICT ]

다음은 Amazon Redshift에서 역할 권한을 취소하기 위한 구문입니다.

REVOKE [ ADMIN OPTION FOR ] { ROLE role_name } [, ...] FROM { user_name } [, ...]
REVOKE { ROLE role_name } [, ...] FROM { ROLE role_name } [, ...]

다음은 Amazon Redshift에서 역할에 대한 시스템 권한을 취소하기 위한 구문입니다.

REVOKE { { CREATE USER | DROP USER | ALTER USER | CREATE SCHEMA | DROP SCHEMA | ALTER DEFAULT PRIVILEGES | ACCESS CATALOG | CREATE TABLE | DROP TABLE | ALTER TABLE | CREATE OR REPLACE FUNCTION | CREATE OR REPLACE EXTERNAL FUNCTION | DROP FUNCTION | CREATE OR REPLACE PROCEDURE | DROP PROCEDURE | CREATE OR REPLACE VIEW | DROP VIEW | CREATE MODEL | DROP MODEL | CREATE DATASHARE | ALTER DATASHARE | DROP DATASHARE | CREATE LIBRARY | DROP LIBRARY | CREATE ROLE | DROP ROLE TRUNCATE TABLE VACUUM | ANALYZE | CANCEL }[, ...] } | { ALL [ PRIVILEGES ] } FROM { ROLE role_name } [, ...]

다음은 EXPLAIN 계획에서 쿼리의 행 수준 보안 정책 필터를 설명할 권한을 취소하는 구문입니다. REVOKE 문을 사용하여 이 권한을 취소할 수 있습니다.

REVOKE EXPLAIN RLS FROM ROLE rolename

다음은 쿼리에 대한 행 수준 보안 정책을 우회할 수 있는 권한을 부여하는 구문입니다.

REVOKE IGNORE RLS FROM ROLE rolename

다음은 지정된 행 수준 보안 정책에서 권한을 취소하는 구문입니다.

REVOKE SELECT ON [ TABLE ] table_name [, ...] FROM RLS POLICY policy_name [, ...]

파라미터

GRANT OPTION FOR

다른 사용자에게 지정된 권한을 허용하는 옵션만 취소하고 권한 자체를 취소하지는 않습니다. 그룹 또는 PUBLIC에서 GRANT OPTION을 취소할 수 없습니다.

SELECT

SELECT 문을 사용하여 테이블 또는 뷰에서 데이터를 선택하는 권한을 취소합니다.

INSERT

INSERT 문 또는 COPY 문을 사용하여 데이터를 테이블로 로드하는 권한을 취소합니다.

UPDATE

UPDATE 문을 사용하여 테이블 열을 업데이트하는 권한을 취소합니다.

DELETE

테이블에서 데이터 행을 삭제하는 권한을 취소합니다.

REFERENCES

외래 키 제약 조건을 생성하는 권한을 취소합니다. 참조되는 테이블과 참조하는 테이블 모두에 대해 이 권한을 취소해야 합니다.

TRUNCATE

테이블을 자를 수 있는 권한을 취소합니다. 이 권한이 없으면 테이블 소유자 또는 수퍼유저만 테이블을 자를 수 있습니다. TRUNCATE 명령에 대한 자세한 내용은 TRUNCATE 섹션을 참조하세요.

ALL [ PRIVILEGES ]

지정된 사용자 또는 그룹에서 사용 가능한 모든 권한을 한 번에 취소합니다. PRIVILEGES 키워드는 옵션입니다.

참고

Amazon Redshift는 RULE 및 TRIGGER 권한을 지원하지 않습니다. 자세한 내용은 지원되지 않는 PostgreSQL 기능 섹션을 참조하세요.

ALTER

데이터베이스 객체에 따라, 사용자 또는 사용자 그룹에서 다음 권한을 취소합니다.

  • 테이블의 경우 ALTER는 테이블 또는 뷰를 변경할 수 있는 권한을 철회합니다. 자세한 내용은 ALTER TABLE 단원을 참조하십시오.

  • 데이터베이스의 경우 ALTER는 데이터베이스를 변경할 수 있는 권한을 철회합니다. 자세한 내용은 ALTER DATABASE 단원을 참조하십시오.

  • 스키마의 경우 ALTER는 스키마를 변경할 수 있는 권한을 철회합니다. 자세한 내용은 ALTER SCHEMA 단원을 참조하십시오.

  • 외부 테이블의 경우 ALTER는 Lake Formation에 활성화된 AWS Glue Data Catalog의 테이블을 변경할 수 있는 권한을 철회합니다. 이 권한은 Lake Formation을 사용하는 경우에만 적용됩니다.

DROP

테이블을 삭제할 수 있는 권한을 취소합니다. 이 권한은 Amazon Redshift와 Lake Formation에 사용되는 AWS Glue Data Catalog에 적용됩니다.

ASSUMEROLE

지정된 역할을 가진 사용자, 역할 또는 그룹에서 COPY, UNLOAD, EXTERNAL FUNCTION 또는 CREATE MODEL 명령을 실행할 수 있는 권한을 취소합니다.

ON [ TABLE ] table_name

테이블 또는 뷰에 대해 지정된 권한을 취소합니다. TABLE 키워드는 옵션입니다.

ON ALL TABLES IN SCHEMA schema_name

참조되는 스키마에 있는 모든 테이블에 대해 지정된 권한을 취소합니다.

( column_name [,...] ) ON TABLE table_name

Amazon Redshift 테이블 또는 뷰의 지정된 열에서 사용자, 그룹 또는 PUBLIC에서 지정된 권한을 취소합니다.

( column_list ) ON EXTERNAL TABLE schema_name.table_name

참조된 스키마에서 Lake Formation 테이블의 지정된 열에 있는 IAM 역할에 지정된 권한을 취소합니다.

ON EXTERNAL TABLE schema_name.table_name

참조된 스키마에 지정된 Lake Formation 테이블의 IAM 역할에서 지정된 권한을 취소합니다.

ON EXTERNAL SCHEMA schema_name

참조된 스키마에 있는 IAM 역할에서 지정된 권한을 취소합니다.

FROM IAM_ROLE iam_role

권한을 잃는 IAM 사용자를 나타냅니다.

ROLE role_name

지정된 역할에서 권한을 취소합니다.

GROUP group_name

지정된 사용자 그룹에서 권한을 취소합니다.

PUBLIC

모든 사용자에게서 지정된 권한을 취소합니다. PUBLIC은 모든 사용자를 항상 포함하는 그룹을 나타냅니다. 개별 사용자의 권한은 PUBLIC에 부여된 권한, 사용자가 속한 그룹에 부여된 권한, 사용자에게 개별적으로 부여된 모든 권한의 합입니다.

Lake Formation 외부 테이블에서 PUBLIC을 취소하면 Lake Formation 모든 사람 그룹에서 권한이 취소됩니다.

CREATE

데이터베이스 객체에 따라, 사용자 또는 그룹에서 다음 권한을 취소합니다.

  • 데이터베이스의 경우 REVOKE를 위한 CREATE 절을 사용하면 사용자가 데이터베이스 내에 스키마를 생성하지 못합니다.

  • 스키마의 경우 REVOKE를 위한 CREATE 절을 사용하면 사용자가 스키마 내에 객체를 생성하지 못합니다. 객체의 이름을 바꾸려면 사용자가 CREATE 권한이 있고 이름을 바꿀 객체를 소유해야 합니다.

참고

기본적으로 모든 사용자는 PUBLIC 스키마에서 CREATE 및 USAGE 권한을 갖습니다.

TEMPORARY | TEMP

지정된 데이터베이스에서 임시 테이블을 생성할 권한을 취소합니다.

참고

기본적으로, 사용자는 PUBLIC 그룹에서 자동 멤버십으로 임시 테이블을 생성할 권한이 허용됩니다. 임의의 사용자가 임시 테이블을 생성할 권한을 제거하려면 PUBLIC 그룹에서 TEMP 권한을 취소한 다음, 특정 사용자 또는 사용자 그룹에 임시 테이블을 생성할 권한을 명시적으로 허용하세요.

ON DATABASE db_name

지정된 데이터베이스에 대한 권한을 취소합니다.

객체

특정 스키마 내의 객체에 대한 USAGE 권한을 취소하여 사용자가 객체에 액세스할 수 없게 만듭니다. 이런 객체에 대한 특정한 작업은 따로 취소해야 합니다(예: 함수에 대한 EXECUTE 권한).

참고

기본적으로 모든 사용자는 PUBLIC 스키마에서 CREATE 및 USAGE 권한을 갖습니다.

ON SCHEMA schema_name

지정된 스키마에 대한 권한을 취소합니다. 스키마 권한을 사용하여 테이블의 생성을 제어할 수 있으며, 데이터베이스에 대한 CREATE 권한으로는 스키마의 생성만 제어할 수 있습니다.

RESTRICT

사용자가 직접 부여한 권한만 취소합니다. 이것이 기본 동작입니다.

EXECUTE ON PROCEDURE procedure_name

특정 저장 프로시저에 대해 EXECUTE 권한을 취소합니다. 저장 프로시저 이름은 오버로딩될 수 있기 때문에 해당 프로시저에 대한 인수 목록을 포함해야 합니다. 자세한 내용은 저장 프로시저 명명 단원을 참조하십시오.

EXECUTE ON ALL PROCEDURES IN SCHEMA procedure_name

참조되는 스키마에 있는 모든 프로시저에 대해 지정된 권한을 취소합니다.

USAGE ON LANGUAGE language_name

언어에 대한 USAGE 권한을 취소합니다. Python 사용자 정의 함수(UDF)에는 plpythonu를 사용합니다. SQL UDF에는 sql을 사용합니다. 저장 프로시저에는 plpgsql을 사용합니다.

UDF를 새로 만들려면 SQL 또는 plpythonu(Python)에 대한 언어에 사용 권한이 필요합니다. 기본적으로 USAGE ON LANGUAGE SQL은 PUBLIC에 허용됩니다. 그러나 특정 사용자 또는 그룹에 USAGE ON LANGUAGE PLPYTHONU 권한을 명시적으로 허용해야 합니다.

SQL에 대한 사용을 취소하려면 먼저 PUBLIC에서의 사용을 취소해야 합니다. 그런 다음 SQL UDF 생성이 허용된 사용자 또는 그룹에게만 SQL에 대한 사용 권한을 허용합니다. 다음은 PUBLIC에서의 SQL 사용을 취소한 후 사용자 그룹 udf_devs에 사용을 허용하는 예시입니다.

revoke usage on language sql from PUBLIC; grant usage on language sql to group udf_devs;

자세한 내용은 UDF 보안 및 권한 단원을 참조하십시오.

저장 프로시저에 대한 사용을 취소하려면 먼저 PUBLIC에서의 사용을 취소해야 합니다. 그런 다음 저장 프로시저 생성이 허용된 사용자 또는 그룹에게만 plpgsql에 대한 사용 권한을 허용합니다. 자세한 내용은 저장 프로시저의 보안 및 권한 단원을 참조하십시오.

FOR { ALL | COPY | UNLOAD | EXTERNAL FUNCTION | CREATE MODEL } [, ...]

권한이 취소되는 SQL 명령을 지정합니다. ALL을 지정하여 COPY, UNLOAD, EXTERNAL FUNCTION 및 CREATE MODEL 문에 대한 권한을 취소할 수 있습니다. 이 절은 ASSUMEROLE 권한을 취소하는 경우에만 적용됩니다.

ALTER

데이터 공유를 소유하지 않은 사용자 또는 사용자 그룹이 데이터 공유를 변경할 수 있도록 하는 ALTER 권한을 취소합니다. 이 권한은 데이터 공유에서 객체를 추가 또는 제거하거나 PUBLICACCESSIBLE 속성을 설정하는 데 필요합니다. 자세한 내용은 ALTER DATASHARE 단원을 참조하십시오.

SHARE

사용자 및 사용자 그룹이 데이터 공유에 소비자를 추가할 수 있는 권한을 취소합니다. 특정 소비자가 해당 클러스터에서 데이터 공유에 액세스하지 못하게 하려면 이 권한을 취소해야 합니다.

ON DATASHARE datashare_name

참조된 데이터 공유에 대해 지정된 권한을 부여합니다.

FROM username

권한을 잃는 사용자를 나타냅니다.

FROM GROUP group_name

권한을 잃는 사용자 그룹을 나타냅니다.

WITH GRANT OPTION

권한을 잃은 사용자가 다른 사용자의 동일한 권한을 취소할 수 있음을 나타냅니다. 그룹 또는 PUBLIC에 대해 WITH GRANT OPTION을 취소할 수 없습니다.

객체

소비자 계정 또는 동일한 계정 내의 네임스페이스에 대해 USAGE가 취소되면 지정된 소비자 계정 또는 계정 내의 네임스페이스는 읽기 전용 방식으로 datashare 및 datashare 객체에 액세스할 수 없습니다.

USAGE 권한을 취소하면 소비자에게서 데이터 공유에 대한 액세스 권한이 취소됩니다.

FROM NAMESPACE 'clusternamespace GUID'

소비자가 데이터 공유에 대한 권한을 상실한 동일한 계정의 네임스페이스를 나타냅니다. 네임스페이스는 128비트 영숫자 전역 고유 식별자(GUID)를 사용합니다.

TO ACCOUNT 'accountnumber' [ VIA DATA CATALOG ]

소비자가 데이터 공유에 대한 권한을 상실한 다른 계정의 계정 번호를 나타냅니다. 'VIA DATA CATALOG'를 지정하면 Lake Formation 계정에서 데이터 공유 사용이 취소됨을 나타냅니다. 계정 번호를 생략하면 클러스터를 소유한 계정에서 해지한다는 의미입니다.

ON DATABASE shared_database_name> [, ...]

지정된 데이터 공유에서 생성된 지정된 데이터베이스에 대해 지정된 사용 권한을 취소합니다.

ON SCHEMA shared_schema

지정된 데이터 공유에서 생성된 지정된 스키마에 대해 지정된 권한을 취소합니다.

FOR { SCHEMAS | TABLES | FUNCTIONS | PROCEDURES | LANGUAGES } IN

권한을 취소할 데이터베이스 객체를 지정합니다. IN 다음의 파라미터는 취소된 권한의 범위를 정의합니다.

CREATE MODEL

지정된 데이터베이스에서 기계 학습 모델을 생성하기 위한 CREATE MODEL 권한을 취소합니다.

ON MODEL model_name

특정 모델에 대해 EXECUTE 권한을 취소합니다.

ACCESS CATALOG

역할이 액세스할 수 있는 객체의 관련 메타데이터를 볼 수 있는 권한을 취소합니다.

[ ADMIN OPTION FOR ] { role } [, ...]

WITH ADMIN OPTION이 있는 지정된 사용자로부터 취소한 역할.

FROM { role } [, ...]

지정된 역할을 취소하는 역할.

REVOKE 사용 노트에 대한 자세한 내용은 사용 노트 섹션을 참조하세요.

REVOKE 사용 방법의 예는 예시 섹션을 참조하세요.