Nice programing

Amazon RDS 환경에서 새 MySQL 사용자 생성

nicepro 2020. 12. 11. 19:25
반응형

Amazon RDS 환경에서 새 MySQL 사용자 생성


기존 Amazon RDS 인스턴스에 대한 제한된 권한이있는 새 MySQL 사용자를 생성해야합니다. 몇 가지 오류 메시지가 발생한 후 공식 MySQL 관리자 도구를 사용하여이 작업을 수행 할 수 있었고 이제 사용자가 목록에 나타납니다. 그러나 모든 사용자가 회색으로 표시되어 있으므로 스키마 권한을 할당 할 수 없습니다. 인스턴스가 시작될 때 생성 된 "마스터 사용자"로 로그인했습니다. 여기서 어디로 가야할지 모르겠습니다. RDS 명령 줄 도구를 설치했지만 거기에서도 아무것도 추적 할 수 없었습니다. 아이디어


가장 좋은 방법은 mysql 명령 줄 클라이언트를 사용하여 데이터베이스에 연결하고 SQL 명령을 호출하여 새 사용자를 만들고 그에게 권한을 할당하는 것입니다.

예를 들어 다음과 같이 실행할 수 있습니다.

mysql -u [your_master_username] -p -h YOURRDSENDPOINT.rds.amazonaws.com

CREATE USER 'jeffrey'@'%' IDENTIFIED BY 'somepassword';
GRANT SELECT ON [your_database].[some_table] TO 'jeffrey'@'%';

Windows에서는 어디에 있든 mysql.exe 클라이언트를 사용할 수 있습니다.

유용한 문서

AWS RDS 보안 그룹 설명서 (혼란의 공통 영역) : http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithSecurityGroups.html

사용자 생성 문서 : http://dev.mysql.com/doc/refman/5.5/en/create-user.html

권한 부여 문서 : http://dev.mysql.com/doc/refman/5.5/en/grant.html


이 스레드가 몇 년 전이라는 것을 알고 있으며 계속 찾고 있으므로 AWS RDS 및 사용자 권한에 대한 업데이트를 받고 싶었습니다.

GRANT ALLRDS가있는 사용자는 사용할 수 없습니다 . GRANT ALL명령문 을 사용할 때 Global(AWS가 호출하는 것처럼) 제공하려고 시도 Super Permissions하고 AWS RDS 시스템이 설정되는 방식으로 사용자에게 전역 옵션 할당을 허용하지 않습니다.

다음에 대한 권한을 분리해야합니다.

GRANT SELECT,INSERT,UPDATE,DELETE,DROP on

이렇게하면 EC2 인스턴스 또는 인터넷에서 액세스 할 수 있도록 보안 설정이 설정되면 사용자가 RDS에 연결할 수 있습니다.

이 정보가 AWS RDS 시스템에서 보았던 것과 동일한 문제를 겪고있는 다른 사람에게 도움이되기를 바랍니다.

Waldo


나는 다음과 같이 만들었습니다.

CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'somepassword';
GRANT SELECT ON mydatabase.* TO 'jeffrey'@'localhost';

그러나 AWS는 해당 사용자에 대한 로그인을 거부했습니다. 그리고 관리자 권한을 변경하려고 시도했지만 성공하지 못했습니다. 그리고 mysql workbench를 통해 'localhost'를 '%'로 변경 합니다. (또는 사용자를 제거하고 다시 만들 수 있습니다) 다음과 같이하십시오.

CREATE USER 'jeffrey'@'%' IDENTIFIED BY 'somepassword';
GRANT SELECT ON mydatabase.* TO 'jeffrey'@'%';

그런 다음이 새 사용자를 통해 로그인 할 수있었습니다.

추가로 :이 변경을 완료하면 데이터베이스가 모든 IP에서 연결할 수 있습니다. 보안을 강화하고 액세스 IP를 제한해야하는 경우 (예 : 스테이징 데이터베이스 인 경우) 서버의 my.cnf 파일에 bind-address를 설정할 수 있습니다.

bind-address = your.ip.add.ress

여기에 링크 설명 입력


MySQL Workbench를 사용하고 RDS에 대해 원시 SQL을 실행하는 데 가장 성공했습니다.

CREATE USER 'foo'@'localhost' IDENTIFIED BY 'password';

더 큰 문제는 권한이었습니다. 처음에는 다음을 시도했습니다.

Grant ALL on *.* to 'foo'@'localhost'

... 액세스 거부 오류가 발생합니다.

Error Code: 1045. Access denied for user 'foo'@'%' (using password: YES)

귀찮은 권한은 RDS가 나에게주지 않는 "수퍼"이며, 다시는 허가 할 수 없습니다. 결과적으로 권한을 수동으로 수행하고 있습니다.

Grant SELECT on *.* to 'foo'@'localhost';
Grant INSERT on *.* to 'foo'@'localhost';
Grant CREATE on *.* to 'foo'@'localhost';

mySQL 워크 벤치를 사용했으며 제대로 작동합니다. 관리 / 사용자 및 권한으로 이동하여 왼쪽 하단의 "계정 추가"버튼을 누르고 구성하십시오. SUPER 권한은 부여 할 수 없지만 나머지 대부분은

참고 URL : https://stackoverflow.com/questions/10198367/creating-a-new-mysql-user-in-amazon-rds-environment

반응형