mariadb.sys って誰?

‘mariadb.sys’@’localhost’ って言う全く身に覚え無いユーザーがあったので、思わず消してしまった。

MariaDB 10.5.13 にて

あれ? mysql.user が見れない!?

MariaDB [mysql]> select * from mysql.user;
ERROR 1449 (HY000): The user specified as a definer (‘mariadb.sys’@’localhost’) does not exist

「ナゼ!? なんでココで ‘mariadb.sys’@’localhost’ が出てくるの?」と思い調べてみると、「mysql.user is a view, its definer is mariadb.sys@localhost user. You delete this user — the view becomes not accessible. This is expected.」とある。

つまりテーブル「mysql.user」はビュー(実体が無いテーブル)であり、ビューを作成したユーザーが「mariadb.sys」であり、ユーザー消去を行うと見えなくなるらしい。

そこで、「mariadb.sys」を「mysql」データベースを閲覧/操作するユーザーとして定義した。

MariaDB [mysql]> grant all on mysql.* to ‘mariadb.sys’@’localhost’;

すると、問題なく表示されるようになった。

いつの間にか、「mysql」データベースは互換のために色々と変更されているようである。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です