Sometime it is necessary to create an anonymous or limited access only account. This allows anonymous user to use MySQL server. I received following criteria
Please note that this anonymous user is for internal WAN/Lan user and not for Internet users.
However, I have noticed default anonymous mysql account.
$ mysql -u anonymous
MySQL allows to login in anonymous user (or any user) from localhost. However this user is not allowed to use any / critical database such as mysql or set password:
$ mysql -u anonymous
Output:
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2630835 to server version: 4.1.20 Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
Try to use mysql database:
mysql> use mysql;
Output:
ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'
Try to setup password:
mysql> SET PASSWORD FOR anonymous@localhost=PASSWORD('secrete');
Output:
ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'
So all I have to do is set permission to table called xyz with GRANT SQL command.
$ mysql -u root -p
Now grant permission to xyz table:
mysql> use dbnane;
mysql> GRANT SELECT ON xyz TO ''@localhost
Now any anonymous user can connect to mysql database server and query xyz table from localhost.
🐧 2 comments so far... add one ↓
Category | List of Unix and Linux commands |
---|---|
File Management | cat |
Firewall | Alpine Awall • CentOS 8 • OpenSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04 |
Network Utilities | dig • host • ip • nmap |
OpenVPN | CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04 |
Package Manager | apk • apt |
Processes Management | bg • chroot • cron • disown • fg • jobs • killall • kill • pidof • pstree • pwdx • time |
Searching | grep • whereis • which |
User Information | groups • id • lastcomm • last • lid/libuser-lid • logname • members • users • whoami • who • w |
WireGuard VPN | Alpine • CentOS 8 • Debian 10 • Firewall • Ubuntu 20.04 |
I tried created a readonly user with the 3-commands as follows:
CREATE USER ‘guest’@’192.168.%’ IDENTIFIED BY ‘guest’;
GRANT SELECT ON *.* TO ‘guest’@’192.168.%’ IDENTIFIED BY ‘guest’;
FLUSH PRIVILEGES;
I logged into anther system in the network and I am able to connect and the see the database/s.
Apart from these I am able to create new tables, update existing insert new records and also drop an existing table.
I am unable to find where the problem is.
Can somebody help me on this regard.
Nice tutorial and very helpful for system admins.