How Can I stop the users from accessing ODBC? - mysql

I have a mysql backend and a ms access 2013 frontend, I configured a odbc connection at system level so it´s available to all users in the computer. But Now I realized that you can easily just open a new database and pull all my tables from that odbc connection and see the credentials.
I´ve already try with user level odbc, the database simply doesn´t log.
How can I stop the users from being able to do such a thing?

Use a DSN-less connection plus connection caching.
Both are explained in this answer: https://stackoverflow.com/a/23430539/3820271
Then distribute your frontend as accde, so the source code isn't available.

Related

ODBC Call Failed between Access 2010 and Advantage database server Over a network

First and Foremost, I know zip, zilch, nada, about VBA, access, and Advantage database Server.
I have a PC in one location that can connect and update with an Access 2010 file where every drive is mapped, e.g. \file\whatever
The advantage streamlinesql odbc dsn's were setup as such \file\whatever foxpro
Now, the PC has been moved to a new location (the company moved) and there is a vpn connection between the two locations (the data server is still located in the old location and cannot be moved), and so the new map would look like this: \xxx.xxx.xxx.xxx\file\whatever
However, Access cannot connect so that it can run its process and update the files it needs to.
I do not know the actual code to place here to help with fixing this, so answering this question with more is fine with me.
I can say that the vpn is built with sonic wall.
The first thing I would try is to connect with ARC32 (The ADS query tool), since you can then rule out ODBC and Access as the problem.
ADS has three connection types:
local
remote
internet
When you directly connect to an Advantage Database Server via TCP/IP, you want the remote connection type.
The connection type can usually be set via the ads.ini file, which also must contain the IP address and port for the ADS server:
[SETTINGS]
ADS_SERVER_TYPE=2
[MYDATABASE]
LAN_IP=10.20.1.20
LAN_PORT=6262
For more info about ADS.ini see the official documentation:
http://devzone.advantagedatabase.com/dz/webhelp/Advantage12/master_ads_ini_file_support.htm
When you try connection over ODBC maybe a complete reference of the connection options would be useful, I have written them down here:
https://stackoverflow.com/a/33544131/426242

Connection lost from mysql remote odbc with MS Access

Hi I am using MS Access and have used mysql odbc to connect to a remote mysql server database. I have already set ip address on cpanel remote mysql section to allow my ms access database to connect with that. I managed to link to this database from MS Access and linked tables are imported in my ms access database but as soon as I try to open those table from ms access I get message that connection lost. What could be the reason why connection is lost when I try to open remote mysql database table in MS Access. Is this some firewall stopping it .. what could be the solution. If Cpanel has remote mysql then does it not mean that it supports remote access. I want to have a non disconnecting connection with my ms access database and possibly I have a plan to extend it to multiple users and convert this to a single database and multiple users application with each user with a copy of access database. Kindly reply thanks.

ms Access MySQL file ODBC connection ODBC--call failed

Im having trouble using the MySQL ODBC connector.
I have a MS access frontend that im trying to connect to a MySQL DB. It connects fine when running the frontend and DB on my dev machine.
I have moved the front end and DB onto the clients server. The clients assess the fornt end via a shared folder on the individual user PCs. I have set up a file DSN ODBC connection as below. When i open the front end on one of the clients PCs i get the ODBC--call failed.
How do i get the linked tables to look at the server MySQL DB considering ms access is not installed on the server. I have tried to set uo the file DSN via the users pc i.e. open linked table manager and open the File DSN get the ODBC--call failed on connect.
File DSN set up
[ODBC]
DRIVER=MySQL ODBC 5.3 Unicode Driver
UID=root
PASSWORD=root
DFLT_BIGINT_BIND_STR=1
PORT=3306
DATABASE=productionlist_be
SERVER=localhost
thanks in advance Kelly
Welcome to stack-overflow Kelly.
You are missing few points.
The MySQL database Server must be accessible by all your clients.
Either a local machine hosting MySQL server or from internet its up
to you
Must have a static IP or domain name.
Access Front-Ends should not be shared but sent to all of your clients/employees
(This way you are achieving true "multi user access" and thats the main idea behind front and back ends)
All of your client PC must have MySQL ODBC driver installed
All of your clients must have required version of Access or Access Runtime installed
Only after setting up all this, you can think about distributing your application to your clients.
Modify your File DSN replace the localhost with the MySQL Database server ip
like
SERVER=SERVER_NAME_OR_IP
Also it is best to refresh the odbc links via VBA code
you will find much help here:
How do you programmatically update a linked table in Access that will refresh data types too?
OR
Relinking database tables: Access, VBA
hope this helps to get started :)

SQL server ODBC connection for Active Directory user who doesn't log in to the windows

Do you think it is possible to create a SQL server ODBC Connection for an active directory user who doesn't log in into the windows.
Ideally this type of users will be used in the batch process. So, Another person logs in and creates a batch process and runs it with another user.
Note: I dont want to create a SQL server authentication. Instead would like to use active directory.
Thanks.
You can't save alternate windows authentication credentials into an ODBC connection for SQL Server. You can only save credentials into the ODBC setting if you use SQL Server authentication.
There are other options though.
You can create a windows authentication ODBC connection to SQL server even if the account you create the connection with doesn't have database access. You just have to untick the "Connect to SQL Server to obtain default settings for the additional configuration options" and you can't use the "Test connection" feature. You just have to create the connection on faith.
With that connection, it will only work if your batch process or application is running as a different account to the logged-in user. Services that run as system accounts do this sort of thing. If you create an application that can be run as a service then you can change the account it runs under.
You can also run as another account manually. Using explorer you can [shift] + right-click on an application and choose "Run As different user" and then enter the other account credentials. Then when the process or application uses the ODBC connection, it will be the correct credentials and work.
There's also "ShellRunAs" https://technet.microsoft.com/en-us/sysinternals/shellrunas.aspx

ASP Classic Connection to SQL Server 2008 error 80004005 Login Failed

I'm trying to setup a connection between ASP Classic and SQL Server 2008 Express on a Windows 7 local environment. Today has been my first attempt ever at this, and I have spent hours and hours researching to no avail. The best I can do is get a failed login.
Here's the connection string (one of many tried):
Provider=SQLOLEDB;Data Source=mycompname\sqlexpress;Initial Catalog=theDBName;Integrated Security=SSPI
The error:
Microsoft OLE DB Provider for SQL Server error '80004005'
Cannot open database "theDBName" requested by the login. The login
failed.
What I want:
Just anything that will connect a database to my ASP Classic page (I normally work in LAMP)! This is not for a live site, so for the time being, that's my only consideration. Just getting it done. :(
Any ideas?
You've specified Integrated Security=SSPI, which means that the user owning the process making the connection must be allowed access to the database. That means that the web service must have access. Have you done that?
It might be easier if you create a named user, give it a password, and use that in your connection string.