본문 바로가기
우당탕탕 에러모음

[PostgreSQL] no schema has been selected to create in ~ 에러

by 푸른달아흐렛밤 2023. 4. 16.
반응형

PostgreSQL로 DB 생성시 'public'이라는 default schema가 제공되며 모든 유저에게 접근 권한이 부여된다.

다만 해당 스키마 사용 시 보안상 취약하다는 문제가 있다.

따라서 새로운 schema를 생성하여 사용하는 것이 좋다.

 

이를 위해서 public schema 권한 revoke 적용한 후 테이블을 생성하려하면,

 no schema has been selected to create in 줄 1: create table {테이블이름}(

위와 같은 에러가 발생하게 된다.

 

한마디로 public schema가 아닌 다른 schema를 사용하란 소리!

 

 

해결법은, 스키마를 생성해주면 된다.

create schema {스키마명} authorization {유저명};

 

스키마 목록 확인을 해보면

\dn+

이런 식으로 생성한 스키마와 디폴트 스키마를 확인할 수 있다

 

그런데 생성 이후 다시 테이블을 생성해보면 같은 오류문구가 발생한다.

스키마를 생성만 하고 여전히 public schema를 사용하고 있기 때문이다.

 

따라서, 새로 생성한 schema를 설정해준다.

set search_path to "{유저명}",{스키마명};

설정 후 테이블을 생성하면, 생성이 아주 잘 된다 👍

반응형