[MXS-3303] A user with just EXECUTE on PROCEDURE privileges to the database, failing to connect via maxscale with database name mentioned. Created: 2020-11-20 Updated: 2021-04-19 Resolved: 2020-12-03 |
|
| Status: | Closed |
| Project: | MariaDB MaxScale |
| Component/s: | Authenticator |
| Affects Version/s: | 2.4.13, 2.5.5 |
| Fix Version/s: | 2.5.7 |
| Type: | Bug | Priority: | Major |
| Reporter: | suresh ramagiri | Assignee: | Esa Korhonen |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Sprint: | MXS-SPRINT-120 |
| Description |
|
This is with the MaxScale 2.4.13/2.5.5 and MariaDB server 10.5.5, a user with only EXECUTE to PROCEDURE privileges unable to connect via maxscale with database name mentioned explicitly. Same connection to the Direct MariaDB server IP, is able to access and execute the SP. The customer reported this saying after upgrading to the latest MaxScale 2.4.13, their application running on Python/Nodejs are not able to connect the database via MaxScale. They have the below mentioned user with similar privileges of EXECUTE to PROCEDURE only and in their application uses the database name explicitly while making the connection. As the connection to direct MariaDB server is working fine, raised this bug to fix the case, so that via maxscale as well it should connect the database. Here are the repro steps: 1. Setup MaxScale 2.4.13/2.5.5 and MariaDB server 10.5.5, create following database/table/SP create database db1; 2. At the MariaDB server, create a user with below privileges create user 'user1'@'%' identified by 'suresh'; Or (without role) 3. Try to connect the database via MaxScale with database name specified mysql -h<maxscale ip> -P <port> -u user1 -p suresh <database name> ## This gives error as access denied. 4. Try to connect the database directly to the server with database name specified mysql -h<server ip> -P <port> -u user1 -p suresh <database name> ## This connects and can execute SP. Note: We can connect via MaxScale as well without mentioning the database name mysql -h<maxscale ip> -P <port> -u user1 -p suresh ## Database name not specified while connecting, it works. Test Results: [root@node4 ~]# maxctrl list servers [root@node4 ~]# maxctrl list services [root@node4 ~]# maxctrl list listeners Read-Write-Service
[root@node4 ~]# mysql -h192.168.81.152 -uuser1 -psuresh Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> use db1
------
------ Query OK, 0 rows affected (0.002 sec) MariaDB [db1]> exit
[root@node4 ~]# mysql -h192.168.81.152 -uuser1 -psuresh db1 maxscale logs: At Maxscale 2.5.5 At Maxscale 2.4.13
[root@node4 ~]# mysql -h192.168.81.194 -uuser1 -psuresh db1 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [db1]> call foobar();
------
------ Query OK, 0 rows affected (0.058 sec) MariaDB [db1]> exit |