| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- CTE
- DDL
- Join
- Github Actions
- Transaction
- db
- NoSQL
- aws
- index
- sub-query
- DevOps
- dml
- 정보처리기사
- 정규화
- ASW
- springboot
- 정처기
- redis
- VPC
- SQLite
- 탄력적 ip
- mongoDB
- EC2
- MySQL
- PostgreSQL
- database
- SQL
- SubQuery
- 보안 그룹
- databse
Archives
- Today
- Total
sellen
DCL 본문

💡 이 내용 이후로 모든 SQL 관련 내용은 NomadCoder 강의를 듣고 정리한 글입니다.
아래의 링크에 SQL 학습에 필요한 데이터가 존재합니다.
https://nomadcoders.co/sql-masterclass
아래의 글과 함께 보시면 좋습니다.
DCL
Data Control Language
- 사용자가 DB를 조회하고 수정할 수 있는 권한을 설정하는 언어
- SQLite에서는 DCL이 존재하지 않는다.
https://www.postgresql.org/docs/current/sql-createrole.html
CREATE ROLE
CREATE ROLE CREATE ROLE — define a new database role Synopsis CREATE ROLE name [ [ WITH ] option [ …
www.postgresql.org
ROLE 생성
CREATE ROLE {account} WITH LOGIN PASSWORD {password}
CREATE ROLE marketer WITH LOGIN PASSWORD 'marketing4ever';
권한 부여
일부 권한 1개만 부여
GRANT {DML} ON {table_name} TO {account}
GRANT SELECT ON movies TO marketer;
특정 Column에 대한 권한만 부여
GRANT {DML} (column_name) ON {table_name} TO {role};
GRANT SELECT (title) ON movies TO editor;
권한 여러 개 부여
만약 다른 테이블과 JOIN을 할 때 해당 테이블에 대한 SELECT 권한이 없으면 JOIN을 하지 못한다.
GRANT SELECT, INSERT ON movies, statuses TO marketer;
특정 Schema 내의 모든 테이블에 대해 권한 부여
GRANT {DML} ON ALL TABLES IN SCHEMA {schema_name} TO {account}
GRANT SELECT ON ALL TABLES IN SCHEMA public TO marketer;
권한 제거
일부 권한 제거
REVOKE {DML} ON {table_name} FROM {account};
REVOKE INSERT ON movies FROM marketer;
특정 Schema 내의 모든 테이블에 대한 권한 제거
REVOKE {DML} ON ALL TABLES IN SCHEMA {schema_name} TO {account}
REVOKE SELECT ON ALL TABLES IN SCHEMA public FROM marketer;
ROLE 삭제
DROP ROLE {account}
DROP ROLE marketer;
여러 계정 생성
1. ROLE 생성
CREATE ROLE editor;
2. ROLE에 권한 부여
GRANT SELECT ON movies TO editor;
3. 계정 생성
CREATE USER editor_one WITH PASSWORD 'one';
4. 계정에 ROLE 부여
GRANT editor TO editor_one;
5. 동시 로그인 방지
ALTER ROLE editor_one WITH CONNECTION LIMIT 1;
'DataBase > 관계형 DB' 카테고리의 다른 글
| PostgreSQL Extensions (2) | 2025.07.21 |
|---|---|
| SQL에서 JSON 다루기 (4) | 2025.07.21 |
| Transaction (1) | 2025.07.21 |
| Function & Procedures (5) | 2025.07.21 |
| 정규화 - PostgreSQL (1) | 2025.07.20 |