由于该应用程序有很多客户,因此我有一个任务来创建一个现有的多租户项目。
我们已经合并了源代码以与任何数据库一起使用,所有客户端的所有源代码都是相同的。
现在,以前使用每个脚本中包含一个配置文件进行数据库连接。
但是,正如您所知,源现在有多个数据库不同的客户端,因此我们被困在与客户端管理数据库的过程中。
最初,
http://localhost/workspace/client/->这是给客户端的URL,现在我使用htaccess将其重定向到index.php并基于客户端/我知道此程序包将使用哪个客户端。
有不同的客户, http://localhost/workspace/clien1/ http://localhost/workspace/clien2/ http://localhost/workspace/client3/
以此类推。
现在,在 index.php 页面中,重定向到login.php,但是未根据客户端为数据库设置配置。
如果有人处理过,请帮助我。
谢谢。
答案 0 :(得分:2)
在建议的设置中,数据库连接参数(服务器地址,数据库用户名/密码和数据库名称)是用户或客户(用户的组织)的属性。
我想您将通过在公用数据库中查找用户,然后使用password_verify()
验证密码来对用户进行身份验证,只要您知道自己有有效的用户,就可以
确保您放置的cookie不包含嵌入其中的数据库参数,否则网络罪犯将找出如何更改cookie以获得未经授权的访问。
但是,提示:众所周知,为每个客户创建新数据库都是不可扩展的。
多租户在线应用程序的一个好习惯是在每个数据记录上放置客户ID或用户ID值,并使用WHERE customer_id = ?
(当前客户)之类的查询子句来按用户分隔数据。
希望重新考虑使用多个数据库的设计决定还为时不晚。