MySQL : 여러 호스트에서 연결할 수있는 사용자 만들기


30

MySQL을 사용하고 있으며 로컬 호스트 또는 다른 서버 (예 : 10.1.1.1)에서 연결할 수있는 계정을 만들어야합니다. 그래서 나는하고있다 :

CREATE USER 'bob'@'localhost' IDENTIFIED BY 'password123';
CREATE USER 'bob'@'10.1.1.1' IDENTIFIED BY 'password123';
GRANT SELECT, INSERT, UPDATE, DELETE on MyDatabse.* to 'bob'@'localhost', 'bob'@'10.1.1.1';

이것은 잘 작동하지만 여러 IP에 연결된 사용자 계정을 만드는 더 우아한 방법이 있습니까? 그렇지 않으면 이렇게해야합니까?

내 주요 걱정은 앞으로 하나의 'bob'계정에 대한 권한이 업데이트되지만 다른 'bob'계정에 대해서는 업데이트되지 않을 것입니다.

답변:


20

호스트로 제한하고을 사용하여 서브넷 또는 와일드 카드를 기반으로 지정하지 않으려면 %이것이 유일한 방법입니다. 자세한 내용은 MySQL 설명서를 참조하십시오 .

대규모 MySQL 설치에 대한 인증을 관리 할 때 오버 헤드를 제거 할 수있는 방법을 찾고 있지만 아직 완벽한 솔루션을 찾지 못했습니다.


8

MySQL 쉘에서 "chaminda"라는 새로운 사용자를 만들어 보자.

CREATE USER 'chaminda'@'%' IDENTIFIED BY 'password';

가장 먼저해야 할 일은 사용자에게 필요한 권한을 부여하는 것이며 여기에서 특정 사용자에게 모든 권한을 부여했습니다.

GRANT ALL PRIVILEGES ON * . * TO 'chaminda'@'%';

모든 권한을 다시로드하십시오.

FLUSH PRIVILEGES;

특정 사용자에게 IP 범위를 허용하려면 다음과 같이 사용하십시오. 10.1.1. %

GRANT ALL PRIVILEGES ON * . * TO 'chaminda'@'10.1.1.%';

참고 : 여기서 호스트 이름 = %는 모든 호스트에서이 데이터베이스 서버에 액세스 할 수 있음을 의미합니다. 사용자에게 모든 권한을 부여하는 것은 큰 위험이며 최선의 방법은 아닙니다. 또한 'chaminda'사용자를 'bob'으로 바꿀 수 있습니다.


5
이것은 질문에 대답하지 않습니다. 모든 IP에서 사용자에게 액세스 권한을 부여하지만 OP는 단일 사용자가 IP 목록에서 데이터베이스에 액세스 할 수있는보다 우아한 방법을 요구하고 있습니다. 기본적으로 여러 IP에서 여러 번 사용자를 추가하기위한 여러 명령문 대신 여러 IP에서 데이터베이스에 액세스 할 수있는 단일 사용자를 추가하여 관리가 쉽고 오류가 적습니다.
안토니

_를 10.1.1.1__과 같은 와일드 카드로 사용하여 100-199와 일치시킬 수도 있지만 200의 경우 별도의 계정을 만들거나 % 와일드 카드를 사용해야하며 0-99 및 201-255도 포함해야합니다.
Chaminda Bandara

-3

MySQL은 한 줄에 여러 개의 와일드 카드를 허용합니다. 가능한 해결책은 사용자 Bob를 위해 호스트를 설정 하는 것입니다

locahost/10.1.1.1

참고:

http://dev.mysql.com/doc/refman/5.1/en/connection-access.html


그것은 문서가 말하는 것이 아닙니다. 표에 나열된 것처럼 /255.255.255.0은 넷 마스크입니다. 호스트 정의에 여러 개의 와일드 카드를 나열하는 방법이 있다면 그렇게 할 수 없습니다.
majikman
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.