REVOKE <권한> FROM APPLICATION ROLE

보안 가능한 스키마 수준 오브젝트에 대한 하나 이상의 액세스 권한을 애플리케이션 역할에서 취소합니다. 취소할 수 있는 권한은 오브젝트별로 다릅니다.

역할 및 보안 오브젝트에 대한 자세한 내용은 액세스 제어의 개요 를 참조하십시오.

변형:

GRANT OWNERSHIP , GRANT <권한> … TO APPLICATION ROLE

구문

계정 역할:

REVOKE [ GRANT OPTION FOR ]
    {
    | { schemaPrivileges         | ALL [ PRIVILEGES ] } ON { SCHEMA <schema_name> | ALL SCHEMAS IN DATABASE <db_name> }
    | { schemaPrivileges         | ALL [ PRIVILEGES ] } ON { FUTURE SCHEMAS IN DATABASE <db_name> }
    | { schemaObjectPrivileges   | ALL [ PRIVILEGES ] } ON { <object_type> <object_name> | ALL <object_type_plural> IN SCHEMA <schema_name> }
    | { schemaObjectPrivileges   | ALL [ PRIVILEGES ] } ON FUTURE <object_type_plural> IN { DATABASE <db_name> | SCHEMA <schema_name> }
    }
  FROM APPLICATION ROLE <name> [ RESTRICT | CASCADE ]
Copy

여기서

schemaObjectPrivileges ::=
  -- For ALERT
     { MONITOR | OPERATE } [ , ... ]
  -- For DYNAMIC TABLE
     OPERATE, SELECT [ , ...]
  -- For EVENT TABLE
     { INSERT | SELECT } [ , ... ]
  -- For FILE FORMAT, FUNCTION (UDF or external function), PROCEDURE, SECRET, or SEQUENCE
     USAGE [ , ... ]
  -- For PIPE
     { APPLYBUDGET | MONITOR | OPERATE } [ , ... ]
  -- For { MASKING | PACKAGES | PASSWORD | ROW ACCESS | SESSION } POLICY or TAG
     APPLY [ , ... ]
  -- For SECRET
     READ, USAGE [ , ... ]
  -- For external STAGE
     USAGE [ , ... ]
  -- For internal STAGE
     READ [ , WRITE ] [ , ... ]
  -- For STREAM
     SELECT [ , ... ]
  -- For TABLE
     { APPLYBUDGET | DELETE | EVOLVE SCHEMA | INSERT | REFERENCES | SELECT | TRUNCATE | UPDATE } [ , ... ]
  -- For TAG
     READ
  -- For TASK
     { APPLYBUDGET | MONITOR | OPERATE } [ , ... ]
  -- For VIEW
     { REFERENCES | SELECT } [ , ... ]
  -- For MATERIALIZED VIEW
     { APPLYBUDGET | REFERENCES | SELECT } [ , ... ]
Copy

각 오브젝트 유형에 지원되는 권한에 대한 자세한 내용은 액세스 제어 권한 을 참조하십시오.

필수 매개 변수

object_name

권한이 부여된 오브젝트의 식별자를 지정합니다.

object_type

스키마 수준 오브젝트의 유형을 지정합니다.

  • ALERT

  • DYNAMIC TABLE

  • EVENT TABLE

  • EXTERNAL TABLE

  • FILE FORMAT

  • FUNCTION

  • MASKING POLICY

  • MATERIALIZED VIEW

  • NETWORK RULE

  • PACKAGES POLICY

  • PASSWORD POLICY

  • PIPE

  • PROCEDURE

  • ROW ACCESS POLICY

  • SECRET

  • SESSION POLICY

  • SEQUENCE

  • STAGE

  • STREAM

  • TABLE

  • TAG

  • TASK

  • VIEW

object_type_plural

object_type 의 복수형(예: TABLES, VIEWS).

파이프에 대한 대량 부여는 허용되지 않습니다.

name

수신자 애플리케이션 역할(즉, 권한이 부여되는 역할)의 식별자를 지정합니다.

선택적 매개 변수

FUTURE

지정된 경우, 기존 오브젝트가 아닌 지정된 형식(예: 테이블 또는 뷰)의 새로운(즉, 향후) 스키마 오브젝트에 대해 부여된 권한만 제거합니다. 기존 오브젝트에 부여된 모든 권한은 유지됩니다.

RESTRICT | CASCADE

지정된 경우 권한이 다른 애플리케이션 역할에 다시 부여되었는지 여부를 기준으로 권한에 대한 취소 작업의 성공 여부를 결정합니다.

RESTRICT

취소되는 권한이 다른 애플리케이션 역할에 다시 부여된 경우 REVOKE 명령이 실패합니다.

CASCADE

취소되는 권한이 다시 부여된 경우 REVOKE 명령은 이러한 종속적 권한 부여를 재귀적으로 취소합니다. 다른 권한 부여자가 어떤 오브젝트에 대해 대상 역할에 같은 권한을 부여한 경우(병렬 권한 부여), 그 권한 부여는 영향을 받지 않으며 대상 역할은 권한을 유지합니다.

기본값: RESTRICT

보안 요구 사항

개별 오브젝트에 대한 권한 취소하기

다음 기준 중 하나에 부응하는 활성 역할 또는 상위 역할 을 사용하여 다른 애플리케이션 역할에서 오브젝트에 대한 권한을 취소할 수 있습니다.

  • 이 역할은 SHOW GRANTS 출력의 GRANTED_BY 열에서 권한 부여자 로 식별됩니다.

    한 권한의 여러 인스턴스를 지정된 오브젝트에 부여한 경우 활성 권한 부여자 역할이 부여한 인스턴스만 취소됩니다.

  • 이 역할은 전역 MANAGE GRANTS 권한이 있습니다.

    한 권한의 여러 인스턴스를 지정된 오브젝트에 부여한 경우 모든 인스턴스가 취소됩니다.

    SECURITYADMIN 시스템 역할 이상의 역할만 기본적으로 MANAGE GRANTS 권한을 가집니다. 하지만 사용자 지정 역할에 이 권한을 부여할 수 있습니다.

다음 역할은 관리형 액세스 스키마(즉, CREATE SCHEMA … WITH MANAGED ACCESS 구문을 사용하여 생성된 스키마)의 오브젝트에서 권한을 취소할 수 있습니다.

  • 애플리케이션 역할(이 역할이 스키마 소유자, 즉 스키마에 대한 OWNERSHIP 권한이 있는 역할이므로).

  • 전역 MANAGE GRANTS 권한이 있는 역할.

지정된 유형의 향후 오브젝트에 대한 권한 부여 취소하기

관리형 액세스 스키마에서 애플리케이션 역할 또는 전역 MANAGE GRANTS 권한이 있는 역할은 스키마의 향후 오브젝트에 대한 권한을 취소할 수 있습니다.

표준 스키마에서 스키마의 향후 오브젝트에 대한 권한을 취소하려면 전역 MANAGE GRANTS 권한이 필요합니다.

사용법 노트

  • 다른 권한 부여자가 한 애플리케이션 역할에 여러 번 권한을 부여할 수 있습니다. REVOKE <권한> 문은 활성 역할 또는 계층 구조의 하위 역할이 권한 부여자인 권한 부여만 취소합니다. 다른 권한 부여자가 지정한 권한의 추가 권한 부여가 무시됩니다.

    아무 권한도 취소되지 않은 경우에도 REVOKE <권한> 문이 성공합니다. REVOKE <권한> 문은 지정된 권한에 종속 권한 부여가 있고 문에서 CASCADE 절이 생략된 경우에만 오류를 반환합니다.

  • 개별 UDF에 권한을 취소할 때 udf_name ( [ arg_data_type , ... ] ) 의 형식으로 UDF에 대한 인자(있는 경우)의 데이터 타입을 지정해야 합니다. 이는 Snowflake가 인자 데이터 타입을 사용하여 스키마 내에서 같은 이름을 가진 UDFs를 확인하기 때문에 필요합니다. 자세한 내용은 사용자 정의 함수 개요 섹션을 참조하십시오.

  • 개별 저장 프로시저에 권한을 취소할 때 procedure_name ( [ arg_data_type , ... ] ) 의 형식으로 프로시저에 대한 인자(있는 경우)의 데이터 타입을 지정해야 합니다. 이는 Snowflake가 인자 데이터 타입을 사용하여 스키마 내에서 같은 이름을 가진 저장 프로시저를 확인하기 때문에 필요합니다.

  • 향후 권한 부여: 향후 권한 부여를 취소하면 지정된 타입의 향후 오브젝트에 대한 권한 부여만 삭제됩니다. 기존 오브젝트에 부여된 모든 권한은 유지됩니다.

    자세한 내용은 관리되는 액세스 스키마 를 참조하십시오.

애플리케이션 역할에서 뷰에 대한 SELECT 권한을 취소합니다.

REVOKE SELECT ON VIEW data.views.credit_usage
  FROM APPLICATION ROLE app_snowflake_credits;
Copy