A UDF library with functions to interact with the operating system. These functions allow you to interact with the execution environment in which MariaDB runs.
docker build .
CID=$(docker create lib_mariadbudf_sys)
docker cp ${CID}:/build/lib_mysqludf_sys/lib_mariaudf_sys.so .
docker rm ${CID}
copy lib_mariaudf_sys.so
to mariadb's plugin directory, then run:
create function sys_exec returns int soname 'lib_mysqludf_sys.so';
create function sys_eval returns string soname 'lib_mysqludf_sys.so';
select sys_eval('uname -a')
UDFs are available to all database users - you cannot grant EXECUTE privileges for them.
As the command string passed to sys_exec
or sys_eval
can do pretty much everything,
exposing the function poses a real security hazard.