카테고리 없음

[42501] ERROR: permission denied for table [table] 테이블 접근 권한 에러

개란나니 2024. 11. 5. 13:53

현재 PostgreSQL을 사용하며 DB 작업을 하고 있는데,

방금까지도 보였던 DB 안에 Table이 열리지 않는 에러가 발생했다.

 

 

[42501] ERROR: permission denied for table user

해당 코드를 해석해보면, user이라는 테이블에 대한 접근 권한이 사용자에게 없을 때 발생하는 에러이다.

이 오류를 해결하기 위해서는 다음 단계를 따라 필요한 권한을 부여해야 한다.

 

PostgreSQL에서 특정 사용자에게 테이블에 대한 모든 권한을 부여하려면 GRANT 명령어를 사용해야 한다.

 

1. PostgreSQL 에 로그인

먼저 PostgreSQL 데이터베이스에 관리자 권한으로 로그인한다. 터미널에서 다음 명령어를 실행하여 PostgreSQL에 로그인 한다.

# billing은 DB 이름
psql -U postgres -d billing

 

 

2. 권한 부여

로그인 후, 다음 SQL 명령어를 사용하여 postgres 사용자에게 user 테이블에 대한 모든 권한을 부여한다. 

# postgres는 관리자 사용자 이름(필요에 따라 다른 사용자로 변경 가능)
GRANT ALL PRIVILEGES ON TABLE user TO postgres;

 


3. 권한 확인

권한이 올바르게 부여되었는지 확인하려면 다음 쿼리를 사용하여 권한을 확인할 수 있다. 이 명령은 user table의 권한을 보여주며, user 사용자가 권한을 가지고 있는지 확인 가능하다.

\dp user

 

4. 종료

작업이 완료되면 \q를 입력해서 PostgreSQL 세션을 종료한다.

사용자에 대하여 특정 테이블의 모든 권한을 부여할 수 있다. 권한 부여 후에는 해당 사용자가 테이블에 접근하고 수정할 수 있어야 한다.