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[
^]