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’계정에 대해서는 업데이트되지 않을 것입니다.
답변
호스트로 제한하고을 사용하여 서브넷 또는 와일드 카드를 기반으로 지정하지 않으려면 %
이것이 유일한 방법입니다. 자세한 내용은 MySQL 설명서를 참조하십시오 .
대규모 MySQL 설치에 대한 인증을 관리 할 때 오버 헤드를 제거 할 수있는 방법을 찾고 있지만 아직 완벽한 솔루션을 찾지 못했습니다.
답변
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’으로 바꿀 수 있습니다.
답변
MySQL은 한 줄에 여러 개의 와일드 카드를 허용합니다. 가능한 해결책은 사용자 Bob
를 위해 호스트를 설정 하는 것입니다
locahost/10.1.1.1
참고:
http://dev.mysql.com/doc/refman/5.1/en/connection-access.html