CentOS 7.2에 Zabbix를 설치하기 위해 몇 가지 튜토리얼을 따르고 있습니다. 이것은 zabbix 데이터베이스를 생성하고 권한을 부여하는 데 사용되는 명령줄입니다.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> create database zabbix;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@'localhost' identified by 'password';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@'%' identified by 'password';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> exit
Bye
zabbix@'%'에 권한을 부여하는 데 사용되는 명령을 이해할 수 없습니다. 점은 무엇인가?
답변1
호스트 이름이 "%"이면 모든 호스트의 연결 요청과 일치합니다.와는 별개로 localhost
매우 중요한 차이점입니다!
즉, 명령을 실행하면
grant all privileges on zabbix.* to zabbix@'%' identified by 'password';
"와일드카드" 호스트 이므로 사용자가 원격 시스템에서 연결할 수 있다고 %
생각할 수도 있습니다.zabbix
그리고로컬 호스트.
그러나 zabbix
SQL Server가 실행되는 동일한 시스템에서 연결을 시도하면 Maria DB는 연결을 거부하고,
따라서 정말로 zabbix
어디에서나 연결할 수 있으려면 다음을 실행해야 합니다.둘 다
grant all privileges on zabbix.* to zabbix@'localhost' identified by 'password';
그리고
grant all privileges on zabbix.* to zabbix@'%' identified by 'password';
답변2
이것MySQL 참조 매뉴얼아주 잘 설명되었습니다. 간단한 요약은 다음과 같습니다.
연결 식별자를 사용자 이름과 원본 호스트로 분할
- 사용자 이름은 인증에 사용한 사용자 이름과 일치해야 합니다.
- 호스트 이름이 "%"이면 원래 호스트 이름과 일치합니다.
- 그렇지 않으면 호스트 이름이 리터럴 DNS 이름과 일치해야 합니다.