Microsoft Access 2007 Database on Django? - sql-server

I have a Microsoft Access 2007 database (.accdb) used in a CRM, and I'd very much like to create an unmanaged model in django to access the data (read-only) for a quick and dirty web application.
What are my options here? I looked at django-pyodbc, but they unfortunately only support ms sql connections at this time. That made me wonder, perhaps there is a way to mirror a Microsoft Access database to a MS SQL server through ODBC, and then connect to that through the django-mssql or django-pyodbc application?
Another option is to convert the access database to some intermediary database file which could then be accessed through django. The downfall to this approach is that I'd need to ensure that I regularly syncronize this intermediary database with the access database, so the intermediary db is up to date.
Does anyone have any ideas on how I can connect to my Access 2007 CRM data through django?

Access files really don't like more than one person touching them. You've outgrown them. Get a proper multi-user networked database and migrate to that. Microsoft will sell you SQL Server for the price of a small yacht or give you SQL Express for free in the hope that soon you'll need to upgrade.
Or use PostgreSQL via ODBC for free for ever. But don't try and use a file as a database without going through a server first.

Related

Approach for using Azure VM for SQL

Following is the exact scenario in my application:
SQL Server database is hosted on-premise locally in US office for
development purpose.
Developers are distributed in 3 different regions (US, India and
Australia).
Developers from India and Australia faces a lot of delay while
trying to access the database from application.
In order to resolve the above issue, we identified a following approach -
Create a VM and install SQL Server there.
Restore database over there.
US developers would continue using the database deployed in their
environment.
India and Australia developers would use the SQL database instance
hosted in Azure VM.
In order to enable synchronization of data and schema between these two databases (Azure VM SQL, and On-prem SQL instance), we are planning to use Azure Data Sync.
I believe most of the things in above scenario are subject of research. But guidance of someone who has already worked on similar things would be very much helpful. Also, we are not using Azure SQL because that would require changes in database schema, as its very old and legacy database
Could you please suggest if the above approach is ideal or not? Note, this is only for the ease of development, and we are not moving our production database outside on-prem setup.
I would not attempt to use Azure Data Sync here, first because you are not otherwise using Azure SQL Database, and second because it's not intended to sync schema changes like this.
Instead pick a primary replica for data changes, and periodically ship and restore backups to refresh the secondary instance. For schema changes, use SQL Server Data Tools and your Source Code Repository (Azure DevOps) to manage the changes.

Link existing MS-Access database to SQL Server

I have an external application that uses a MS Access database to store its data.
I do not want to touch anything here, because the application works very good for me.
I have now created a own application and now I need the data from the MS Access database in my application. My application uses SQL Server.
Is it possible to sync the existing MS Access database with a new SQL Server database, so that I can query the MS Access database through my SQL Server?
I really don't want a linked table in MS Access because this can not work since I can not change the application that uses the MS Access database, and it would also be great if I don't have to query from the MS Access database.
I really need a tool the reads data from MS Access and writes it into my SQL Server and the other way around so they always have the same data.
Thanks in advance for your help.

How can I encrypt a distributable SQL Server Express database?

We have a product that historically uses a Microsoft Access database which is great because it is portable.
However we are looking to move to SQL Server and this will range from the Express version upwards. In the Access database we can use a password to protect the database from prying eyes. Although I appreciate it only offers limited security. We need to be able to protect a SQL Server database however we do have access to the server as the database is delivered as part of the install. The client would install SQL Server and then attach the database. I looked at NetLib but that requires an install on the server. I cannot use TDE as SQL Express does not support that. I can use column encryption but I was wondering if there was a database wide solution. Basically no one except for us as supplier should be able to query the data unless they use our software interface.

Is there any way to identify a reference table in SQL Azure as something to store in memory?

I have about 20 reference tables in my application which is running in an Microsoft hosted SQL database on Azure. I think that this is currently called a SQL Azure database but I'm having difficulty coming up with Microsoft naming.
The data in my reference tables changes very rarely. Is there any way that I can identify these as tables that should be stored in memory. If not mistaken I think this feature is offered on SQL Server 2014 but I think that's not available as a hosted cloud database yet.
if you're referring to Azure SQL Database, this is still not supported today. you might want to explore using Azure Redis Cache instead to cache the datasets.

How to Password Protect my SQL Server Database?

I want to deploy my SQL Server 2008 Database with application on the client's machine, where i don't want that anybody can open and read or copy my Database Objects (i.e. Tables, SPs, Functions, Views etc.).
I want to protect database with password same like Microsoft Access 2007 When somebody opens it asks Password. Can it be done in SQL Server 2008, if yes how.?
SQL Server is not like Access and doesn't have any file-based password-protection mechanisms (in the "normal" editions like Web, Standard, Enterprise/Developer, Express).
SQL Server is a server-based product - you need to restrict physical access to the server the files are located on, and prevent unauthorized users from accessing the files through the SQL Server mechanisms (like logins and permissions).
If you need something like Access' password-protected files, you need to use SQL Server Compact Edition which is file-based and has a password-protect feature
An alternative approach that you may also wish to consider, that is in addition to deploying an initial secure instance configuration, is the Transparent Data Encryption feature in SQL Server. This way were someone able to access the database data files "outside" of SQL Server, i.e. via the file system, they would not be able to review the data without decrypting the data files.

Resources