PG_DEFAULT_ACL
기본 액세스 권한에 대한 정보를 저장합니다. 기본 액세스 권한에 대한 자세한 내용은 ALTER DEFAULT PRIVILEGES 섹션을 참조하세요.
PG_DEFAULT_ACL은 모든 사용자에게 표시됩니다. 수퍼유저는 모든 행을 볼 수 있지만 일반 사용자는 자체 데이터만 볼 수 있습니다. 자세한 내용은 시스템 테이블 및 뷰에 있는 데이터의 가시성 단원을 참조하십시오.
테이블 열
열 명칭 | 데이터 유형 | 설명 |
---|---|---|
defacluser | 정수 | 나열된 권한이 적용되는 사용자의 ID입니다. |
defaclnamespace | oid | 기본 권한이 적용되는 스키마의 객체 ID입니다. 스키마를 지정하지 않은 경우 기본값은 0입니다. |
defaclobjtype | character |
기본 권한이 적용되는 객체 유형입니다. 유효한 값은 다음과 같습니다.
|
defaclacl | aclitem[] |
지정한 사용자 또는 사용자 그룹과 객체 유형의 기본 권한을 정의하는 문자열입니다. 기본 권한을 사용자에게 부여할 때 문자열은 다음과 같습니다.
사용자 이름 권한이 부여되는 사용자의 이름입니다. username을 지정하지 않으면 권한은 PUBLIC에게 부여됩니다. 기본 권한을 사용자 그룹에게 부여할 때 문자열은 다음과 같습니다.
privilegestring 부여할 권한을 지정하는 문자열입니다. 유효한 값은 다음과 같습니다.
grantor 권한을 부여한 사용자의 이름입니다. 다음은 사용자
|
예
다음은 데이터베이스에 정의되어 있는 기본 권한을 모두 반환하는 쿼리입니다.
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
위 예의 결과를 보면 사용자 admin
이 tickit
스키마에서 새롭게 생성한 모든 테이블에 대해 admin
이 SELECT 권한을 user1
에게, INSERT 권한을 group1
에게, 그리고 UPDATE 권한을 user2
에게 부여하는 것을 알 수 있습니다.