실수로
postgres 의 계정권한을 모두 없애버려서
로그인 조차 불가능한 상태입니다.
계정중에 superuser는 없는데...
pg_hba.conf 에서 trust로 바꾸고 postgres 로그인으로 시도해도 안되네요...
postgres 계정으로 로그인되더라도 권한이 없어서 뭘 할수는 없을거 같은데
postgres 계정말고 기본 superuser계정이 또 있나요.. 아니면 권한 초기화같은게 가능할까요ㅠㅠ?
저런,
뭔 작업을 하셨길래.
저도 한번도 경험해 보질 못한 것이라서
그냥 제가 아는 범위 안에서 약간 보태면,
db 서버 중지하고,
postgres --single -D 데이터디렉터리
이 형태로 실행해서 했던 일의 반대 작업을 하면 되지 않을까싶습니다.
db서버가 해킹당했었습니다.
그래서 postgres의 계정의 권한을 모두 없애고 패스워드도 변경해놓고
새로운 superuser를 생성하여 사용 하려고 하였는데
생각없이 먼저 postgres 계정의 권한을 먼저 없애버려서
새로운 계정은 로그인 권한밖에 없습니다..
실행했던일의 반대로의 작업이 불가능한거 같아요..ㅠㅠ
(11) postgres@postgres=# alter role postgres NOSUPERUSER NOCREATEDB NOCREATEROLE NOINHERIT NOLOGIN NOREPLICATION NOBYPASSRLS; ALTER ROLE (11) postgres@postgres=# \du 롤 목록 롤 이름 | 속성 | 소속 그룹: ----------+-----------------------------+------------ postgres | 상속 없음, 로그인할 수 없음 | {} (11) [postgres@ioseph-centos7 ~]$ psql 2019-05-23 10:38:14.093 KST [18291] FATAL: role "postgres" is not permitted to log in psql: FATAL: role "postgres" is not permitted to log in (11) [postgres@ioseph-centos7 ~]$ pg_ctl -D tt stop 서버 멈추었음 (11) [postgres@ioseph-centos7 ~]$ postgres --single -D tt PostgreSQL stand-alone backend 11.3 backend> alter role postgres SUPERUSER CREATEDB CREATEROLE INHERIT LOGIN REPLICATION BYPASSRLS; (11) [postgres@ioseph-centos7 ~]$ pg_ctl -D tt start 서버 시작됨 (11) [postgres@ioseph-centos7 ~]$ psql psql (11.3) 도움말을 보려면 "help"를 입력하십시오. (11) postgres@postgres=# \du 롤 목록 롤 이름 | 속성 | 소속 그룹: ----------+------------------------------------------------+------------ postgres | 슈퍼유저, 롤 만들기, DB 만들기, 복제, RLS 통과 | {}