어떤 MySQL 사용자가 필요합니까?


13

내 MySQL 서버에는 내가 추가하지 않은 이상한 사용자가 많이 있습니다. 이것들이 모두 필요한가?

'root'@'127.0.0.1'
'root'@'localhost'
'root'@'SERVERNAME'
'root'@'::1'
''@'SERVERNAME'
''@'LOCALHOST'

root @ localhost를 제외한 모든 루트를 제거하면 데이터베이스에서 자신을 잠글 수 있습니까? 그리고 빈 사용자 이름의 목적은 무엇입니까? 그들은 단지 'GRANT USAGE'를 가지고있는 것 같습니다 ??

호스트와 로컬 호스트로 127.0.0.1 사이에 차이가 있습니까? 127.0.0.1이 아닌 localhost 만 가지고 있다면 Unix 소켓 대신 TCP / IP를 사용하는 mysqlclient가 연결할 수 없습니까?

답변:


16
  1. 이러한 사용자는 MySQL을 설치할 때 추가 된 기본 사용자 인 것 같습니다 . MySQL을 설치 한 후 mysql_secure_installation 을 실행하는 것이 좋습니다 .

  2. 빈 사용자 이름 ( ''@ 'SERVERNAME')은 익명 사용자를 나타냅니다. mysql_secure_installation비밀번호를 실행 하거나 설정 하지 않은 경우 누구나 액세스 할 수 있습니다. 익명 사용자에게 GRANT USAGE권한이 있으면 기본적으로 권한이 없음을 의미하지만 익명 로그인을 완전히 제거하는 것이 좋습니다.

  3. 아니요, localhost와 127.0.0.1 사이에는 큰 차이가 없습니다. 사용자가 로그인하려는 IP 주소는 사용자 @[IP Address]이름 의 일부 와 일치해야합니다 . 동일한 시스템에서의 로깅은 MySQL 서버가 켜져 있으면, 다음 @localhost@127.0.0.1일치합니다. IVlint67이 지적했듯이 일부 설치 @localhost에서는 작동하지 않아서 더 잘 사용할 수 있습니다 @127.0.0.1.


13

나는 보통 mysql_secure_installation 스크립트로 설치한다.


root@127.0.0.1은 @ IP 주소입니다. root @ localhost는 @ 호스트 이름입니다. 서버 이름을 구분합니다. 그리고 마지막 루트는 localhost의 @ IPv6 주소입니다.


MySQL 사이트에서 :

호스트 127.0.0.1에 대한 연결 시도는 일반적으로 localhost 계정으로 해결됩니다. 그러나 --skip-name-resolve 옵션을 사용하여 서버를 실행하면 127.0.0.1 계정이 유용합니다.

빈 사용자 이름 :

일부 계정은 익명 사용자 용입니다. 여기에는 빈 사용자 이름이 있습니다. 익명 계정에는 비밀번호가 없으므로 누구나 MySQL 서버에 연결할 수 있습니다.

http://dev.mysql.com/doc/refman/5.0/en/default-privileges.html


그리고 마지막으로:

root @ localhost를 제외한 모든 루트를 제거하면 데이터베이스에서 자신을 잠글 수 있습니까?

예,하지만 다시 들어갈 수 있습니다

--skip-grant-tables를 참조하십시오 : https://help.ubuntu.com/community/MysqlPasswordReset

내가해야합니까?

상관 없어요, 그것은 당신의 서버입니다. 그것이 내 경우라면, 비밀번호로 루트 계정을 보호하고 필요하지 않으면 익명 계정을 삭제합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.