PG_DEFAULT_ACL - Amazon Redshift

PG_DEFAULT_ACL

기본 액세스 권한에 대한 정보를 저장합니다. 기본 액세스 권한에 대한 자세한 내용은 ALTER DEFAULT PRIVILEGES 섹션을 참조하세요.

PG_DEFAULT_ACL은 모든 사용자에게 표시됩니다. 수퍼유저는 모든 행을 볼 수 있지만 일반 사용자는 자체 데이터만 볼 수 있습니다. 자세한 내용은 시스템 테이블 및 뷰에 있는 데이터의 가시성 단원을 참조하십시오.

테이블 열

열 명칭 데이터 유형 설명
defacluser 정수 나열된 권한이 적용되는 사용자의 ID입니다.
defaclnamespace oid 기본 권한이 적용되는 스키마의 객체 ID입니다. 스키마를 지정하지 않은 경우 기본값은 0입니다.
defaclobjtype character

기본 권한이 적용되는 객체 유형입니다. 유효한 값은 다음과 같습니다.

  • r-릴레이션(테이블 또는 뷰)

  • f–함수

  • p-저장 프로시저

defaclacl aclitem[]

지정한 사용자 또는 사용자 그룹과 객체 유형의 기본 권한을 정의하는 문자열입니다.

기본 권한을 사용자에게 부여할 때 문자열은 다음과 같습니다.

{ username=privilegestring/grantor }

사용자 이름

권한이 부여되는 사용자의 이름입니다. username을 지정하지 않으면 권한은 PUBLIC에게 부여됩니다.

기본 권한을 사용자 그룹에게 부여할 때 문자열은 다음과 같습니다.

{ "group groupname=privilegestring/grantor" }

privilegestring

부여할 권한을 지정하는 문자열입니다.

유효한 값은 다음과 같습니다.

  • r–SELECT(읽기)

  • a–INSERT(추가)

  • w–UPDATE(쓰기)

  • d–DELETE

  • x–외래 키 제약 조건을 생성하는 권한을 부여합니다(REFERENCES).

  • X–EXECUTE

  • *–먼저 권한을 받은 사용자가 이어서 다른 사용자에게 동일한 권한을 부여할 수 있다는 것을 나타냅니다(WITH GRANT OPTION).

grantor

권한을 부여한 사용자의 이름입니다.

다음은 사용자 admin이 사용자 dbuser에게 WITH GRANT OPTION을 포함하여 모든 권한을 부여한 것을 나타내는 예입니다.

dbuser=r*a*w*d*x*X*/admin

다음은 데이터베이스에 정의되어 있는 기본 권한을 모두 반환하는 쿼리입니다.

select pg_get_userbyid(d.defacluser) as user, n.nspname as schema, case d.defaclobjtype when 'r' then 'tables' when 'f' then 'functions' end as object_type, array_to_string(d.defaclacl, ' + ') as default_privileges from pg_catalog.pg_default_acl d left join pg_catalog.pg_namespace n on n.oid = d.defaclnamespace; user | schema | object_type | default_privileges -------+--------+-------------+------------------------------------------------------- admin | tickit | tables | user1=r/admin + "group group1=a/admin" + user2=w/admin

위 예의 결과를 보면 사용자 admintickit 스키마에서 새롭게 생성한 모든 테이블에 대해 admin이 SELECT 권한을 user1에게, INSERT 권한을 group1에게, 그리고 UPDATE 권한을 user2에게 부여하는 것을 알 수 있습니다.