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에 권한 없을 경우 발생하는 오류
![](https://blog.kakaocdn.net/dn/Le4i6/btsDfYXJdEQ/kKzaE836gv9OcXJZ5uDdv0/img.png)
참고) pg_hba.conf 예시
![](https://blog.kakaocdn.net/dn/OhTG7/btsDdIujgv5/yTMrHkGoMp1MeuoMcgeMU0/img.png)
Object Priviledges
- 각 object에 대해 owner role 은 모든 권한을 가짐
- 다른 role들은 권한을 부여받아야 사용 가능
- default 권한
- db : connect
- schema : usage
- table/view : select
- function : execute
![](https://blog.kakaocdn.net/dn/cnOxkq/btsDd3MaHeK/6Uz5MnkLzKmvQKnruAxCGk/img.png)
--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;
실습
![](https://blog.kakaocdn.net/dn/bLUt51/btsDfOVf5VO/wknXTshfV66CKgnGZgNbak/img.png)
8. 새로 생성한 role 에 대해 권한이 부여되어 있지 않기 때문에 오류 발생
10. 위 9번에 해당하는 권한 필요
11. insert 권한 없기 때문에 구문 실패
![](https://blog.kakaocdn.net/dn/yBQJx/btsC7qOZgtD/Wn3wUOBNQEnxTEv6XtWHek/img.png)
Quiz
![](https://blog.kakaocdn.net/dn/T78AZ/btsC9bjTvEx/1dkA4c81elNmatBVgg14rK/img.png)
'프로N잡러 > 프로그래밍&자격증' 카테고리의 다른 글
[GPDB] 4-2.Data Definition Language(DDL) : Distribution (1) | 2024.01.09 |
---|---|
[GPDB] 4-1. Data Definition Language(DDL) : Table (0) | 2024.01.09 |
[GPDB] 2. DB Instance (DB, Schema) (0) | 2024.01.09 |
[GPDB] 1. 서버 명령어 (DB제어 & PSQL) (1) | 2024.01.09 |
[GPDB] 0. System Architecture (시스템 아키텍처) (0) | 2024.01.09 |