GRANT CALLER

호출자 권한 을 역할에 부여합니다. 역할이 소유한 실행 파일이 제한된 호출자 권한으로 실행되는 경우 호출자 권한 부여에 지정된 호출자 권한으로만 실행할 수 있습니다.

GRANT CALLER 명령의 변형은 다음과 같습니다.

  • GRANTCALLER — 특정 오브젝트에 대한 호출자 권한을 부여합니다. 문에 의해 생성된 각 호출자 권한은 실행 파일을 지정된 권한으로 실행할 수 있도록 허용합니다.

  • GRANT ALL CALLER PRIVILEGES — 특정 오브젝트에 대한 호출자 권한을 부여합니다. 문에 의해 생성된 호출자 권한은 실행 파일이 호출자의 모든 권한으로 실행되도록 허용합니다.

  • GRANT INHERITED CALLER — 공통 스키마, 데이터베이스 또는 계정을 공유하는 경우 동일한 유형의 현재 및 향후 모든 오브젝트에 대해 호출자 권한을 부여합니다. 문에 의해 생성된 각 호출자 권한은 실행 파일을 지정된 권한으로 실행할 수 있도록 허용합니다.

  • GRANT ALL INHERITED CALLER PRIVILEGES — 공통 스키마, 데이터베이스 또는 계정을 공유하는 경우 동일한 유형의 현재 및 향후 모든 오브젝트에 대해 호출자 권한을 부여합니다. 문에 의해 생성된 호출자 권한은 실행 파일이 호출자의 모든 권한으로 실행되도록 허용합니다.

구문

GRANT CALLER <object_privilege> [ , <object_privilege> ... ]
  ON <object_type> <object_name>
  TO { ROLE | DATABASE ROLE } <grantee_name>

GRANT ALL CALLER PRIVILEGES
  ON <object_type> <object_name>
  TO { ROLE | DATABASE ROLE } <grantee_name>

GRANT INHERITED CALLER <object_privilege> [ , <object_privilege> ... ]
  ON ALL <object_type_plural>
  IN { ACCOUNT | DATABASE <db_name> | SCHEMA <schema_name> | APPLICATION <app_name> | APPLICATION PACKAGE <app_pkg_name> }
  TO { ROLE | DATABASE ROLE } <grantee_name>

GRANT ALL INHERITED CALLER PRIVILEGES
  ON ALL <object_type_plural>
  IN { ACCOUNT | DATABASE <db_name> | SCHEMA <schema_name> | APPLICATION <app_name> | APPLICATION PACKAGE <app_pkg_name> }
  TO { ROLE | DATABASE ROLE } <grantee_name>
Copy

매개 변수

object_privilege [ , object_privilege ... ]

실행 파일이 실행할 수 있는 오브젝트 권한입니다. 특정 오브젝트 유형에 대한 권한 목록은 액세스 제어 권한 섹션을 참조하십시오.

쉼표로 구분된 목록을 사용하여 둘 이상의 오브젝트 권한을 지정합니다.

ON object_type object_name

지정된 오브젝트(object_name)에 액세스할 때 지정된 object_privilege 로 실행 파일을 실행하도록 허용합니다. object_type 의 단수형(예: TABLE 또는 WAREHOUSE)을 사용합니다.

ON ALL object_type_plural IN ACCOUNT 또는 . ON ALL object_type_pluarl IN DATABASE db_name 또는 . ON ALL object_type_plural IN SCHEMA schema_name 또는 . ON ALL object_type_plural IN APPLICATION app_name 또는 . ON ALL object_type_plural IN APPLICATION PACKAGE app_pkg_name

지정된 유형의 오브젝트에 액세스할 때 실행 파일이 오브젝트 수준 권한으로 실행되도록 허용합니다. 오브젝트 유형의 복수형(예: TABLES 또는 WAREHOUSES)을 사용합니다.

GRANT 문을 사용하여 현재 계정의 모든 오브젝트 또는 지정된 데이터베이스, 스키마, 애플리케이션 또는 애플리케이션 패키지의 오브젝트에 대한 액세스를 제어할 수 있습니다.

TO ROLE grantee_name 또는 . TO DATABASE ROLE grantee_name

호출자 권한 부여로 보안하려는 실행 파일의 소유자입니다.

데이터베이스 역할을 지정하면 권한은 데이터베이스 역할과 동일한 데이터베이스의 오브젝트로 제한됩니다.

액세스 제어 요구 사항

이 작업을 실행하는 데 사용되는 역할 에는 최소한 다음 권한 이 있어야 합니다.

권한

오브젝트

참고

MANAGE CALLER GRANTS

계정

계정 수준 MANAGE CALLER GRANTS 권한은 호출자 권한 부여에만 적용됩니다. 역할에 권한을 부여할 수 없습니다.

모든 권한

지정된 모든 오브젝트

호출자 권한 부여에 지정된 오브젝트에 대해 하나 이상의 권한이 필요합니다. 예를 들어, 테이블에 호출자 권한을 부여하려면 해당 테이블에 대한 권한이 하나 이상 있어야 합니다.

지정된 권한 세트로 사용자 지정 역할을 만드는 방법에 대한 지침은 사용자 지정 역할 만들기 섹션을 참조하십시오.

보안 오브젝트 에 대해 SQL 작업을 수행하기 위한 역할과 권한 부여에 대한 일반적인 정보는 액세스 제어의 개요 섹션을 참조하십시오.

v1 뷰에 액세스하는 owner_role 소유의 실행 파일은 해당 뷰에 대한 SELECT 권한으로 실행할 수 있습니다.

GRANT CALLER SELECT ON VIEW v1 TO owner_role;
Copy

db.sch 스키마의 모든 테이블에 액세스하는 owner_role 소유의 실행 파일은 호출자의 SELECT 및 INSERT 권한으로 실행할 수 있습니다.

GRANT INHERITED CALLER SELECT, INSERT ON ALL TABLES IN SCHEMA db.sch TO ROLE owner_role;
Copy

현재 계정의 스키마에 액세스하는 owner_role 소유의 실행 파일은 스키마에 대한 호출자의 모든 권한으로 실행할 수 있습니다.

GRANT ALL INHERITED CALLER PRIVILEGES ON ALL SCHEMAS IN ACCOUNT TO ROLE owner_role;
Copy

db.sch1.t1 테이블에 액세스하는 db.r 데이터베이스 역할이 소유한 실행 파일은 테이블에 대한 SELECT 권한으로 실행할 수 있습니다.

GRANT CALLER SELECT ON TABLE db.sch1.t1 TO DATABASE ROLE db.r;
Copy

my_db 데이터베이스에 액세스하는 owner_role 소유의 실행 파일은 데이터베이스에 대한 호출자의 모든 권한으로 실행할 수 있습니다.

GRANT ALL CALLER PRIVILEGES ON DATABASE my_db TO ROLE owner_role;
Copy