Click here to Skip to main content
15,887,027 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I want to make my system as server for SQL so that my customers can connect that via internet and can access that. How to do that and what softwares I have to install

What I have tried:

I searched for google, got some information which is maybe not suitable for me.
Posted
Updated 9-Nov-19 23:46pm
v4

Fairly obviously you will need to install SQL Server 2019 | Microsoft[^]. But you also need to ensure that your system has sufficient power and resources to manage the amount of data you expect to be loaded to the system. Your system must also be visible on the internet, and not just your local lan, so you need strong security to control it. A better solution would be a web server with SQL as a back end database so that all database access is controlled locally and not visible to the world.
 
Share this answer
 
Comments
vijay_bale 9-Nov-19 6:00am    
Only 20 MB data or more from customers. I installed already windows 10 and Ms-SQL server 2015. Windows 10 is having inbuilt firewall so didn't installed any internet security software. RAM is 8 GB and 150 GB SSD only for C drive and 500 GB sata HDD for other Drives like D,E & F. Is that enough for that ?
Richard MacCutchan 9-Nov-19 7:46am    
20 MB of data is nothing so performance is unlikely to be an issue. But as I mentioned above, and OriginalGriff reiterates below, there are many more considerations that need to be addressed.
BillWoodruff 9-Nov-19 8:49am    
+5
Richard's advice is not about a firewall: it's about the security of your database and the data it contains.

There are two problems here which you need to address:
1) Security: if you directly expose your DB to your customers via the internet, it is accessible to anyone who has a valid username and password - and your customer software that accesses the DB will need both, so that's already a problem. If an employee of any customer leaves under a cloud, you will not know - and if they have the user details they can very easily copy, steal, delete, or damage your databases. Depending on what they contain, that could cost you considerable amounts of money: GDPR fines for inadequately protecting sensitive data are very serious!
2) More security: Did you leave the default sa admin account enabled on MsSql? If you did, anyone with the IP can do anything they like to your installation and the databases it contains.
3) Addressing: do you pay your internet provider extra each month for a static IP address? If you don't, then you almost certainly have a dynamic address - which means it can change at any time, and that would mean your customers would no longer be able to access the DB at all.

All in all, there are some considerable problems that you need to really think about before you go down this route - and you don;t sound like you have enough knowledge at this point to even know what the risks are, much less understand what you need to do to mitigate them.
I'd strongly suggest that you use a hosting service, and provide a web service to intercede on DB access and prevent all direct connections.

Or go for a cloud based DB solution and learn what the risks there are before you do anything else!
 
Share this answer
 
Comments
BillWoodruff 9-Nov-19 8:49am    
+5
vijay_bale 10-Nov-19 4:36am    
@OriginalGriff. I already took one web based DB service for SQL server which is down from 2 days and I tried to contact them but failed. I am facing some problems from customers. I already spoke with my service provider for static IP. So that's why I thought to convert my one system as server. I am not using default user id sa in SQL server to connect data base.
Please read Solution 1 and Solution 2 before this one, as they make mention on some good points and then later on read this solution once you want to get started with the deployment of a database.
Quote:
can connect that via internet
This is the only problem in your plan. You can surely host your databases on the machines you own, but the problem comes when you provide a write-access to the customers. And to provide this to anyone on the "internet" is a huge step.

Apart from that, a major problem would be the high-availability for the database. In case your system goes down, for updates, for power outage, for bugs and crashes, everyone that depends on your system will face a downtime in the services. Thus, it is always a bad approach to manage your databases on your own systems. Not to mention, that there are costs associated with every task; electricity, system upgrades, system reboots, data backups etc.
Quote:
can access that
One of the best ways to provide this service is to write an API that exposes the database as a Web API. This way, you can host your web app and the database on the same machine, but your customers can only access the web app—through HTTPS—and your web app then goes ahead and communicates with the database to provide the results.

This will surely require some web app development experience, but I am sure that will be a better investment.

Last but not least, for high-end demands, I highly recommend purchasing a subscription from a cloud-based vendor, such as Microsoft Azure, Alibaba Cloud, AWS or Google Cloud Platform. They would provide you with a database solution with only ~$30 and you scale as you grow. But everything is managed by them, storage, compute, replication, availability and sometimes security is managed by them too.

For cheaper and separate, user-by-user demands, I recommend using local databases on client's machines. Such as SQLite, that can be a good candidate to create a database on the users' machine and write the solution that uses SQLite and provides the solution. But remember, the data is stored on the client-side and is not shared.

SQLite Home Page[^]
 
Share this answer
 
In addition to the other suggestions, and especially the one about using an API, you might be interested in:
best-web-frameworks-to-create-a-web-rest-api[^]
best-sql-database-as-a-service-providers[^]
And also: nosql-database-as-a-service-providers[^]
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900