유저 생성후 가장 빠르게 생성하는 방법:
CREATE DATABASE myappdb OWNER myappuser;
이러면 권한 세팅이 훨씬 간단해진다.
권한 부족 에러 나오면 대부분:
이 세 개 중 하나다.
먼저 슈퍼유저(postgres)로 접속
psql -U postgres
혹은 로컬이면:
sudo -u postgres psql
CREATE DATABASE myappdb;
확인:
\l
CREATE USER myappuser WITH PASSWORD 'mypassword';
✔ 비밀번호는 실제 서비스에서는 강하게 설정하자.
확인:
\du
GRANT ALL PRIVILEGES ON DATABASE myappdb TO myappuser;
하지만 여기서 끝이 아니다 👇
PostgreSQL은 DB 권한과 테이블 권한이 다르다.
DB에 접속한 후 권한을 줘야 한다.
\c myappdb
GRANT ALL ON SCHEMA public TO myappuser;
이미 존재하는 테이블에 대해:
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO myappuser;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO myappuser;
앞으로 생성될 테이블에 대해 자동 적용:
ALTER DEFAULT PRIVILEGES IN SCHEMA public
GRANT ALL ON TABLES TO myappuser;
ALTER DEFAULT PRIVILEGES IN SCHEMA public
GRANT ALL ON SEQUENCES TO myappuser;
CREATE DATABASE myappdb;
CREATE USER myappuser WITH PASSWORD 'mypassword';
GRANT ALL PRIVILEGES ON DATABASE myappdb TO myappuser;
\c myappdb
GRANT ALL ON SCHEMA public TO myappuser;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO myappuser;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO myappuser;
ALTER DEFAULT PRIVILEGES IN SCHEMA public
GRANT ALL ON TABLES TO myappuser;
ALTER DEFAULT PRIVILEGES IN SCHEMA public
GRANT ALL ON SEQUENCES TO myappuser;