我们是一家软件公司,开发了一个小行业的CS架构的软件,为了节省用户服务器投入和维护成本,目前我们采用租用一个阿里云ECS的服务器,然后挂载20个用户的20个数据到同一台ECS服务器上的同一个SQL实例下。由于这20个数据库结构完全一样但又需要互相隔离,所以我们为每个数据分配一个用户,数据库直接对公网开放由用户的客户端程序直接连接到他对应的数据库上进行访问。
以上是我们目前的应用方式,这里存在不少安全问题和效率问题。但是如果为每个用户租用RDS则成本又太高。
请教各位前辈,我这种需求有更好的应用模式可以实现吗?或者有什么好的建议请各位不吝指教啊。听说oracle12支持多租户模式,正是为这种相同库结构不同用户又要实现数据隔离和统一管理而构架的,这好像是一种思路。
比较合适的做法是把所有用户的数据放一个表里面,通过用户id做区分,但是对编码纪律有要求,所有的db访问必须都带上用户id。同时db的维护也需要通过自己的工具来完成,不能开放给用户。