AWS Postgresql 인스턴스에서 수퍼 유저를 생성 할 수없는 이유는 무엇입니까?


16

RDS 인스턴스 (Postgresql)에 연결하는 AWS EC2 인스턴스가 있습니다. RDS 인스턴스를 만들 때 DB 루트의 사용자 이름은 다음 my_user1과 같으며 비밀번호는 password1입니다. 이제 역할과 수퍼 유저를 만들려고합니다. 그러나 실패합니다.

$ createuser -P -d -s -e my_user2 --host myhost.com -U my_user1
Enter password for new role: XXXYYYZZZ
Enter it again: XXXYYYZZZ
Password: password1
CREATE ROLE my_user2 PASSWORD 'md5999999c0101a1d64afd57575e06f999c' SUPERUSER CREATEDB  CREATEROLE INHERIT LOGIN;
createuser: creation of new role failed: ERROR:  must be superuser to create superusers
$

-s플래그 없이 명령을 반복하면 작동합니다.

$ createuser -P -d -e my_user2 --host myhost.com  -U my_user1
Enter password for new role:
Enter it again:
Password:
CREATE ROLE my_user2 PASSWORD 'md5999999c0101a1d64afd57575e06f888c' NOSUPERUSER CREATEDB NOCREATEROLE INHERIT LOGIN;
$

따라서 my_user1슈퍼 유저를 만들 수있는 권한이 없습니다. 그러나 이것은 내가 RDS에게 내 관리자라고 말한 사용자입니다! 경우 my_user1슈퍼 유저를 만들 수있는 권한이 없습니다, 누가합니까? AWS에서 사용자 이름 / 암호를 어떻게 얻습니까?


pg_hba.conf는 인증 체계가 로컬 사용자의 피어라고 말합니까?
drookie

Drookie,이 파일은 RDS 인스턴스 자체에 있습니까? 나는 그 기계에 아직 SSH하지 않았다.
Saqib Ali

@SaqibAli RDS 인스턴스에 SSH로 연결할 수 없습니다.
ceejayoz

답변:


23

RDS 인스턴스는 Amazon에서 관리합니다. 따라서 복제와 같은 사항을 위반하지 않도록하려면 인스턴스를 만들 때 설정 한 루트 사용자 인 사용자도 전체 수퍼 유저 권한을 갖지 않습니다.

http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.PostgreSQL.CommonDBATasks.html

DB 인스턴스를 생성하면 생성 한 마스터 사용자 시스템 계정이 rds_superuser 역할에 할당됩니다. rds_superuser 역할은 PostgreSQL 수퍼 유저 역할 (로컬 인스턴스에서 사용자 지정 postgres)과 유사한 사전 정의 된 Amazon RDS 역할이지만 일부 제한이 있습니다. PostgreSQL 수퍼 유저 역할과 마찬가지로 rds_superuser 역할은 DB 인스턴스에서 가장 많은 권한을 가지며 DB 인스턴스에 대한 가장 많은 액세스 권한이 필요하지 않은 한이 역할을 사용자에게 할당해서는 안됩니다.


6
를 사용하여 수퍼 유저 플래그가 없으면 데이터베이스를 백업 할 수 없습니다 pg_dump. aws의 rds와 함께이 문제를 해결할 방법이 있습니까?
chovy

@chovy, grant사용자에게 db 소유자 역할을 시도 하십시오.
스파이크

3

\du+또는로 현재 권한을 나열 \dg+하면 수퍼 유저가 아니라 권한 만들기 역할 인 Create DB 만 허용 됩니다. 따라서 현재 할당 된 권한보다 높은 권한을 자신에게 할당 할 수 없습니다.

일반적으로 호스팅 된 환경에서 루트 또는 수퍼 유저 권한이 부여되지 않습니다. 완전한 제어를 위해 사용자 정의 EC2 인스턴스를 가동하고 PostgreSQL을 로컬로 설치하는 것이 좋습니다.


2
pg_dump를 사용하여 Amazon RDS 데이터베이스를 백업하는 방법이 실제로 있습니까?
chovy
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.