how to create MYSQL User for tableau connectivity only - mysql

I want to allow MYSQL connectivity to business users on tableau without creating a DB user i.e. without allowing direct access to the database through the MYSQL workbench.
right now I have a MySQL user with grant access on only one database to connect through tableau. But business users can use this user to explore data through workbench and run queries, which is not ideal.
Is there a way to give MYSQL database access ONLY on tableau and not any database tools like workbench?

There is not such an option for it. But you can create/define user roles with restrictions on DB/table levels in MySQL or you can create two database(on same machine or another machine), one is Main(Primary) and other one for Tableau only, so if any Tableau users access the new(separate) database from any other application, they will have limited data(only which is using for Tableau dashboards).

So I found a solution for this and here it is, in case someone else has this issue.
I just published a live connection to my database table on tableau server, and embedded user credentials in tableu. This way anytime a user wants to use the data source they just need to select from published data sources. But we wont have to share user credentials with them, that resolves the issue and they wont be able to log in using any credentials from any database client.

Related

MySQL Workbench - Define database in connection settings

I was wondering whether there is a way to define a specific database in the connection setup of MySQL Workbench (I know this works with other database software). Sometimes I have a lot of different databases on one server and I only want to access one with one connection. Can I specify the database in the connection settings somehow?
YES, On the home tab Click the + in MySQL Connections. And put the database name in the Default Schema: when you fill in all the usual info about ip address etc
Now if you only want to see the one database, then create a new MySQL user account and only allow this new account access to this single database. Then change the connection to the database to use the newly created MySQL account.
I guess you are seeing all the databases because you are using the root account.

How would I connect to an Access database table from a MySQL database?

Basically the short story is we have a report generator running on a MySQL database at work and management wants me to modify things so we can connect to tables in an external Access database from this report generator as well. And then create reports that join tables from the MySQL database to the Access database. I suggested exporting the data from Access and importing it into MySQL but they want a live, real-time connection. To complicate things further these are both on different servers right now (MySQL on Linux, Access on Windows) and I'm not sure that can be changed.
I tried to look this up online but all I could find is ways to connect to MySQL from Access, not the reverse.
Is what we are trying to do even possible, and if so, can someone point me in the right direction?

Creating MySQL database and user to be hosted on one.com

I'm attempting to create a MySQL database and administrator user to this database and I intend on hosting the database on one.com. I noticed that in other webhosts e.g. bluehost, the option of creating a MySQL database and a user is available but this is not available on one.com.
My question is how does someone using code create a MySQL database and user which can be hosted on a webhost in my case one.com?
Any ideas are appreciated.
Thanks.
Most hosting providers use CPanel or ZPanel for providing services to their clients. Both the panels come with services that allow creation of a database and assigning an user to the database.
It is possible to query MySQL to do the same, but hosting providers always restricts the clients from direct querying of their database servers.

Share Excel file that queries a database

I have a read-only file that queries a SQL Server database and will provide the information personalized for the specific user. (Excel identifies the user and then runs the query based on the users id). What I was wondering is if there is a way to share the file without having to setup an ODBC connection for each user?
For right now I have it working for four users, but to get to that point, I had to setup ODBC on each machine. Since the file will eventually have about 60 users I was hoping there was a way for it to query SQL Server without having to setup that many ODBC connections?
See here: DSN-less connections for a guide

How to allow multiple users in local network to share a single MySQL database

How to allow multiple users in local network to share a single MySQL database? We even have option of share drive, if it will help.
we are using C# windows application as front end
The limitation is that we do not have acces to our main server. The server is with the other ofice department and we do not want to indulge that department in our project. So, we are on LAN and have a shared drive between us.
And we want to use this database common to multiple users in our office (aprox 100 users) which will use our C# windows application to view data and to enter data.
Can we do something on Share Drive? I am not sure..
Hope it will make some sense..
Thanx
MySQL handles this situation out-of-the-box. Each client connects from wherever and the DBM handles the details. Make sure the server is configured correctly and that the specific database allows connects from other than 127.0.0.1.
Whatever you do, do not use file sharing to try and run multiple copies of MySQL against a single database -- that way lies madness and tears. There are lock files that try to prevent this type of abuse, but I've acutally seen people try to "get around" this.
Here is an excellent guide for unix based servers :
http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html
the same passages are needed for a windows system, you need to enable remote access and eventually grant permissions on a defined IP.
Remote sharing of the database is disabled by default for security reasons.
EDIT:
if you are in the same network, then you may just grant permissions I.E.:
GRANT SELECT ON mydb.* TO devel2#192.168.1.102 identified by 'mypassword'
As long as they have network access to the server and you have at least MySQL 5 (5.0.2), can't you just create users for them?
CREATE USER 'new_username'#'localhost' IDENTIFIED BY 'password_for_new_username';