database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Tutorials 10539 게시물 읽기
 News | Q&A | Columns | Tutorials | Devel | Files | Links
No. 10539
psql restrict 모드
작성자
김상기(ioseph)
작성일
2025-09-16 13:25
조회수
626

PostgreSQL 13 버전부터 

psql 내장 명령어로 \restrict, \unrestrict 명령이 포함되었는데, 

너무 단순한 기능이라서 공식 문서에 그 설명이 없어 여기 남긴다. 


postgres=# \restrict a

postgres=# select current_user;

 current_user

--------------

 ioseph

(1개 행)


postgres=# \?

백슬래시 명령은 제한되었음; \unrestrict 명령만 허용함

postgres=# \unrestrict a


postgres=# \unrestrict a

\unrestrict: 현재 엄격 모드가 아님


즉 엄격 모드 상태가 되면 \ 백슬래시로 시작하는 psql 내장 명령어를 모두(\unrestrict는 제외)를 사용할 수 없게 된다. 


만일 sql 스크립트가

\restrict a

create table t (a int);

\c another_database

create table t (a int);

\unrestrict a


이런식으로 두 데이터베이스를 바꿔가면서 같은 테이블을 만들고 싶어 \c 명령을 사용했다면, 

위에서 실행했는 \restrict a 명령에 의해 엄격 모드 상태이기 \c 명령은 실패하고, 

같은 데이터베이스 내에서 t 테이블을 한번 더 만들려고 시도하고, 그 테이블이 이미 있어 

두번째 create table 명령은 실패하게 된다.


자주 사용하는 role 변경 작업인 

\c - new_role

같은 명령도 쓸 수 없게 된다.

이 때는 set role new_role 같은 SQL 명령으로 role 전환을 해야한다.


 

[Top]
No.
제목
작성자
작성일
조회
10542잠시 참조키 검사 중지 하기 (18버전) [1]
김상기
2025-09-23
736
10540pg_aios 뷰
김상기
2025-09-18
769
10539psql restrict 모드
김상기
2025-09-16
626
10414EXCLUDE 제약 조건
김상기
2023-04-15
2387
9299plpgsql debuger 설치해서 사용하기
김상기
2013-06-19
9533
8971타임라인을 이용한 시간여행
김상기
2012-03-16
9723
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2025 DSN, All rights reserved.
작업시간: 0.014초, 이곳 서비스는
	PostgreSQL v18.1로 자료를 관리합니다