Esta sección contiene las mejores prácticas para asegurar una base de datos MySQL/MariaDB.
Para una configuración básica, consulte las instrucciones predeterminadas de creación de base de datos MySQL/MariaDB, que incluyen la creación del usuario 'zabbix' con privilegios completos sobre la base de datos de Zabbix. Este usuario es el propietario de la base de datos y también tiene los privilegios necesarios para modificar la estructura de la base de datos al actualizar Zabbix.
Para mejorar la seguridad, se recomienda crear roles y usuarios de base de datos adicionales con privilegios mínimos. Estos roles y usuarios deben configurarse según el principio de privilegio mínimo, es decir, solo deben tener los privilegios esenciales para realizar las funciones previstas.
Cree los siguientes roles con los privilegios correspondientes:
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;La restauración y actualización de tablas debe ser realizada por el propietario de la base de datos.
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';
       -- Para MariaDB: omita la siguiente línea (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;Después de crear los roles, pueden ser asignados a los usuarios.
Para asignar los roles de usuario creados, cree usuarios y asígneles los roles correspondientes. Reemplace <user>, <host>, <role> y <password> según sea necesario.
CREATE USER '<user>'@'<host>' IDENTIFIED BY '<password>';
       GRANT '<role>' TO '<user>'@'<host>';
       SET DEFAULT ROLE '<role>' TO '<user>'@'<host>';
       -- Para MariaDB: SET DEFAULT ROLE '<role>' FOR '<user>'@'<host>'
       FLUSH PRIVILEGES;Por ejemplo, para crear y asignar el rol para ejecutar el servidor y el proxy de Zabbix: