e. My question : how can this specific user access a specific mysql db without getting access to all the dbs ?
You can create a database user and add it to your database in Cpanel->MySQL databases. This database user will be able to connect remotely only to this specific database
f. I also wish this specfic user to be able to ftp php files that will feed this specific db so how can that happen without giving the primary un and pw ?
Do you want to have a separate ftp user who can upload files to your account so you can later import them to your database? You can create a ftp user in Cpanel->FTP manager and give this user access to a specific folder where you want to keep your files.
g. Also, how does one rename a db (not just rename a table but a full db consisting of 16 tables and data)
You can backup your original database, then create a new one in Cpanel and import your backup via phpMyAdmin.
Hope this will help