Roles give administrative rights to users so Plesk is doing exactly what it was told to do.
Granting administrative DB permissions however does not create a mysql user but a panel user who can manage the databases of the subscriptions you gave him access to ("all" or individually selected).
If you see all databases in phpMyAdmin you are not logged in as this user but clicked a "webadmin" link from within plesk which uses a login-token for the matching db user created for this subscription/database or even the admin (Tools & Settings-> Applications & Databases -> Database Servers -> Servername -> Databases) -> "Webadmin" in "Tools" section.
If you see all databases of all subscriptions in Plesk Panel you selected "all" in the "access subscriptions" field when creating the user.
Defining a custom role as an approach for giving access to only one database does not make sense as there is no need for administrative rights (he only could delete his database).
If your intention was to create just a mysql user for a specific database in a specific subscription open subscriber's control panel when logged in as admin user, click "databases", select tab "users", click "add new database user" and select which databases this new user should have access to. done.
Unfortunately for me it is not clear
- where your user sees all the databases
- if "all" really is all of them (like system dbs, too)
- if "access" means control panel or mysql/phpmyadmin
However, I hope i covered all contingencies.