I'm looking for a fix, but I'd gladly settle for an alternative.
Problem: I am designing an application in Java, It's requirement is to once every night, sync to a server database. More than one laptop will be running this application, and from dynamic IP addresses. I have created and restricted permissions to their SQL accounts from the cPanel interface (not from phpmyadmin, no grant privileges to do so). I need to grant these restricted accounts Wildcard permission to allow the app to do it's work. Neither myself nor the web-host re-seller have access to root or have grant permission. So i cannot allow selected users permissions to remote access.
I Can however, allow all users (which includes the unrestricted users), remote access from Wildcard IP address through the cPanel interface. I can remotely gain access through my Java program this way. However There are security concerns and so I don't want to use this option.
_ _
Any thoughts or suggestions would be greatly appreciated.
P.S. I realise this is very poorly structured and has more than one question. This problem seems to be unique, I haven't been able to find any specific information that fulfilled my needs.
Personally, I would not open your database to the internet. It's a security risk and also most hosts will block this anyway.
Your second option is the one I would go with, creating an API which runs on the server, authenticates the clients, and then exposes only the API to the internet (or, since you have control over the clients, maybe even only by VPN!), which then interacts with the database.
A backup plan would be VPN access to the server; if your client can VPN to the host network then you can allow your clients direct access to the database.
About your question 3, if you don't have root access you'll still either have permissions to edit users or not; being able to grant users permission (even with a wildcard host) is independent of being the root user, so you may or may not have this level of access and it's impossible to tell based only on your username alone.