Овај одељак садржи најбоље праксе за обезбеђивање MySQL/MariaDB базе података.
За основно подешавање, погледајте подразумевана упутства креирање MySQL/MariaDB базе података, која укључују креирање корисника "zabbix" са пуним привилегијама на Zabbix бази података. Овај корисник је власник базе података који такође има потребне привилегије за измену структуре базе података приликом надоградње Zabbix-а.
Да би се побољшала безбедност, препоручује се креирање додатних улога базе података и корисника са минималним привилегијама. Ове улоге и корисници треба да буду конфигурисани на основу принципа најмањих привилегија, то јест, требало би да имају само привилегије које су неопходне за обављање предвиђених функција.
Креирајте следеће улоге са одговарајућим привилегијама:
CREATE ROLE 'zbx_srv';
GRANT DELETE, INSERT, SELECT, UPDATE ON zabbix.* TO 'zbx_srv';
FLUSH PRIVILEGES;
CREATE ROLE 'zbx_web';
GRANT DELETE, INSERT, SELECT, UPDATE ON zabbix.* TO 'zbx_web';
FLUSH PRIVILEGES;
CREATE ROLE 'zbx_bckp';
GRANT LOCK TABLES, TRIGGER, SELECT ON zabbix.* TO 'zbx_bckp';
GRANT process ON *.* TO 'zbx_bckp';
FLUSH PRIVILEGES;
Рестаурацију и надоградњу табела треба да изврши власник базе података.
CREATE ROLE 'zbx_part';
GRANT SELECT, ALTER, DROP ON zabbix.history TO 'zbx_part';
GRANT SELECT, ALTER, DROP ON zabbix.history_uint TO 'zbx_part';
GRANT SELECT, ALTER, DROP ON zabbix.history_str TO 'zbx_part';
GRANT SELECT, ALTER, DROP ON zabbix.history_text TO 'zbx_part';
GRANT SELECT, ALTER, DROP ON zabbix.history_log TO 'zbx_part';
GRANT SELECT, ALTER, DROP ON zabbix.trends TO 'zbx_part';
GRANT SELECT, ALTER, DROP ON zabbix.trends_uint TO 'zbx_part';
-- За MariaDB: прескочите следећи ред (GRANT session_variables_admin ON *.* TO 'zbx_part';)
GRANT session_variables_admin ON *.* TO 'zbx_part';
GRANT SELECT ON zabbix.dbversion TO 'zbx_part';
GRANT SELECT, DELETE ON zabbix.housekeeper TO 'zbx_part';
FLUSH PRIVILEGES;
Након креирања улога, оне се могу доделити корисницима.
Да бисте доделили креиране корисничке улоге, креирајте кориснике и доделите им релевантне улоге. Замените <user>
, <host>
, <role>
, и <password>
по потреби.
CREATE USER '<user>'@'<host>' IDENTIFIED BY '<password>';
GRANT '<role>' TO '<user>'@'<host>';
SET DEFAULT ROLE '<role>' TO '<user>'@'<host>';
-- За MariaDB: SET DEFAULT ROLE '<role>' FOR '<user>'@'<host>'
FLUSH PRIVILEGES;
На пример, да бисте креирали и доделили улогу за покретање Zabbix сервера и проксија: