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
Related
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.
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?
I have recently started using MySQL Workbench, hence I apologise if this is not the proper platform to ask this question. I tried to figure out the solution of my own, but could not find any appropriate one.
Here is my situation: At my workplace, we have a huge set of data about the operational and financial figures such as sales, employee, profit, etc for European companies spread over past 7-8 years and new data keeps coming regularly. However, the problem is we work from different remote locations, me in one city and the other two colleagues in a different city. Normally, we share our work files (.xls/.doc) etc through Dropbox. So, we thought of creating a database in MySQL wherein we all can submit/edit/add this data so that we can filter and analyse this data on several ways once the collection is complete. And we plan to use and access it thereafter. We believe that this is ease a lot of our work. So all I want to know is: can all three of us collaborate simultaeousy (in order to add or edit the data) through workbench Server administration, like the way we collaborate our work through Dropbox? I want to be the host (like the administrator) and then want to allow the access to my colleagues.
Thank you for your time and answer. You may also refer me to any site or link to read more about it.
I think you are a bit confused about what MySQL Workbench is.
MySQL workbench is just a data viewer and administration tool that connects to a MySQL server, there's no data "stored" in MySQL workbench, all the data is stored in the server.
MySQL workbench can:
Connect to a MySQL server
Send SQL instructions and show the results: You can create and drop databases, send SQL queries, create and execute stored procedures and functions... all assuming you have the right privileges.
Perform administration tasks: You can create and drop users, grant or revoke permissions, etcétera
But the fact is: all is stored in a MySQL server... so the answer to your question is: Yes, you can work simmultaneously with your colleagues, if and only if all of you can connect to the same database server (as Mike W commented).
Addressing your comments, and clarifying more details:
MySQL is a database server. When you install it in a computer, all data is stored in that computer (aside from replication and other fine details). You should make regular backups of your data (MySQL has tools for that, one is mysqldump). If you want to access the data stored in your database server, you can do it:
By ussing the command-line client,
By using MySQL workbench or another GUI client program, or
By any program that can connect to the database server (via ODBC or specific libraries).
Focusing on MySQL Workbench, and addressing your specific question: If your machine breaks down, you can install the MySQL Server in any other machine, and load the backup into it. You will have to configure that new machine so that any of your coworkers can connect to it (that may imply that a new set of connection parameters is created).
I'm trying to link in MS Access to the tables in a MySQL database on a remote computer. I'm using a system DSN (ODBC), but when I try to link to the tables (Link Tables dialog) the dialog is empty. No error message, just a empty list. I'm sure I've a connection because after changing the Limit Connectivity to Hosts Matching field in the MySQL security tab (MySQL Workbench) from "%" to only "localhost", I get an error. All fields in the Administrative Roles tab are checked!
A few questions for you to consider:
Is that DSN associated with the database schema which includes the tables you want linked?
Does the DSN work in the opposite direction ... can you export an Access table to MySQL using that DSN?
Are there any provisions in MySQL to monitor client connections, requests, and so forth?
I'm basically grasping at straws on this one. But I'm wondering if maybe the DSN is functional, but perhaps not pointing at the MySQL location which includes the tables you want.
Point #2 should tell you whether the DSN is working at all. If you can export, find out where the exported table wound up in MySQL and compare that with the location of your other tables.
We're using MS Access 2007 as our DB and should support users with limited access (power users):
The DB should be common to all users (hence cannot be located on user's private folder)
We are not allowed to grant permissions for all users for R/W for a certain directiry
Yet we need all users be able to use this DB.
Can anyone can think on a solution to this issue?
(I can only think on writing a service to this job, but I'm sure there must be something better)
Have a look at this to help you make your decision. Personally I won't recommend using Access if your user is more than say 4 simultaneous users as a shared database. I've used solution however where we use Access as a front end to a SQL Server backend where we cache SQL data locally for faster access and push necessary data changes back to SQL Server. And have that Access file reside on the client computer.
Putting Access anywhere will require a R/W permission on that directory since Access will create lock file in that directory (or it used to be anyhow).
If you insist on using Access, I'd go w/ Access front end connecting to SQL Server backend. The network share option is doable if you don't have a lot of users (4 - 8 the most).
You want to split the MDB into a Front End MDB containing the queries, forms, reports, macros and modules with just the tables and relationships in the Back End MDB. The FE is copied to each network users computer. The FE MDB is linked to the tables in the back end MDB which resides on a server. You make updates to the FE MDB and distribute them to the users, likely as an MDE.
See the "Splitting your app into a front end and back end Tips" page for more info. See the Auto FE Updater downloads page to make this relatively painless.. The utility also supports Terminal Server/Citrix quite nicely.
Now I don't quite understand why you have the restriction mentioned in your second bullet There has to be a common folder on a server somewhere where all usess have R/W privileges. Please explain this in more detail.
SQL Server Express can be used as the backend database, and it doesn't require that you give write permissions to a folder for everyone.
The SQL Server Migration Assistant 2008 for Access V4.0 can be used to migrate the Access database tables to SQL Server Express.
Using SQL Server Express as the database server will greatly improve the stability and reliability of Access in a multiuser environment. I have worked with Access for several years, in installations with 20+ concurrent users. If you are doing something similar, I strongly recommend that you use Sql Server or Sql Server Express as your backend database.