Role
- login 속성을 넣으면 user, login 속성이 없으면 group
- OS user, group 과 연관 없음.
- default superuser role : gpadmin
- role에는 db, schema, object 에 대한 access 권한이 주어짐
[종류]
① user role
- login 가능한 일반 유저
- default 속성 : NOSUPERUSER, NOCREATEDB, NOCREATEROLE, INHERIT, NOLOGIN
--create role
CREATE ROLE ~ WITH LOGIN RESOURCE GROUP adhoc;
--alter role
ALTER ROLE ~ WITH CREATEDB;
② superuser
- gpadmin 과 동일한 admin 정도의 권한
- 모든 권한 확인을 통과함
- default 속성 : SUPERUSER, CREATEDB, CREATEROLE, PASSWORD
③ group role
- 다른 role 의 멤버가 될 수 있으며, parent role 의 권한을 모두 상속받음.
- 동시에 여러 개의 role 은 수행할 수 없음
CREATE ROLE grp_admin CREATEROLE CREATEDB;
GRANT grp_admin TO john, sally;
REVOKE admin FROM bob;
Access (접근 권한)
Host Base Authentication (HBA)
- 사용자가 master 에 접근할 때 확인하는 권한
- pg_hba.conf 파일에 ip, 권한이 적혀있어야 접근, 로그인 등 가능
- user, group 단위로 특정 ip/ip 대역 접근 할 수 있도록 설정
- trust 로 넣을 경우 password 없이 접근 가능
- pg_hba.conf 변경이 완료되었다면 "gpstop -u"로 conf 내용 적용 필요.
$ cd $MASTER_DATA_DIRECTORY
$ cat pg_hba.conf # 내용 확인
$ echo "local testdb testuser trust" >> $MASTER_DATA_DIRECTORY/pg_hba.conf
$ gpstop -u
참고) HBA에 권한 없을 경우 발생하는 오류

참고) pg_hba.conf 예시

Object Priviledges
- 각 object에 대해 owner role 은 모든 권한을 가짐
- 다른 role들은 권한을 부여받아야 사용 가능
- default 권한
- db : connect
- schema : usage
- table/view : select
- function : execute

--grant on schema (GPv6부터 지원)
# grant select on all tables in schema sch1 to user1;
--column level (GPv6부터 지원)
# grant select (b) on table t_grant_column to user1;
# grant select on table t_grant_column to user2;
실습

8. 새로 생성한 role 에 대해 권한이 부여되어 있지 않기 때문에 오류 발생
10. 위 9번에 해당하는 권한 필요
11. insert 권한 없기 때문에 구문 실패

Quiz

반응형
'아무리 바빠도 공부는 해야지 > GPDB' 카테고리의 다른 글
[GPDB] 4-2.Data Definition Language : Distribution (0) | 2023.03.24 |
---|---|
[GPDB] 4-1. Data Definition Language : Table (0) | 2023.03.24 |
[GPDB] 2. DB Instance (DB, Schema) (0) | 2023.03.24 |
[GPDB] 1. 서버 명령어 (DB제어 & PSQL) (0) | 2023.03.24 |
[GPDB] 0. System Architecture (시스템 구성도) (0) | 2023.03.24 |