Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在2个数据库之间共享用户_Php_Mysql_Database_Database Design_Rbac - Fatal编程技术网

Php 在2个数据库之间共享用户

Php 在2个数据库之间共享用户,php,mysql,database,database-design,rbac,Php,Mysql,Database,Database Design,Rbac,我正在用PHP开发这个应用程序。该应用程序将包括一个管理区域,该区域还将包含员工功能。应用程序的另一部分是面向客户的网站 管理区域有自己的数据库。面向客户的网站也有自己的数据库 在管理数据库中,我有一个包含用户的表,我还计划实现RBAC,以便用户可以拥有角色、权限等 面向客户的网站还允许客户注册,并存储在客户网站数据库的用户表中 我需要的是能够让员工登录客户网站。他们还需要拥有权限,以控制他们可以修改客户网站的哪些部分以及他们可以更改客户网站数据库中的哪些行 实现这一点的最佳方式是什么 干杯:)

我正在用PHP开发这个应用程序。该应用程序将包括一个管理区域,该区域还将包含员工功能。应用程序的另一部分是面向客户的网站

管理区域有自己的数据库。面向客户的网站也有自己的数据库

在管理数据库中,我有一个包含用户的表,我还计划实现RBAC,以便用户可以拥有角色、权限等

面向客户的网站还允许客户注册,并存储在客户网站数据库的用户表中

我需要的是能够让员工登录客户网站。他们还需要拥有权限,以控制他们可以修改客户网站的哪些部分以及他们可以更改客户网站数据库中的哪些行

实现这一点的最佳方式是什么


干杯:)

您可以这样做:

$sql = "SELECT * FROM employeedb.employee_user_table WHERE employee_id = '???'";
作为来自线程启动程序的注释问题。对于两个用户表,可以使用如下解决方案:

$sql = "SELECT * FROM employeedb.employee_user_table WHERE employee_id = '???'";
  • 创建新表。例如:带有字段的全局用户表:

    • 用户id
    • 通过
    • 表_源(实表源)
    • 是特别的用户(或类似的)
    • 附加字段1
    • 附加_字段2
    • 等等等等等等
  • 每次用户登录时,让它检查此表,并将表源存储在会话中,以供以后使用


您可以这样做:

$sql = "SELECT * FROM employeedb.employee_user_table WHERE employee_id = '???'";
作为来自线程启动程序的注释问题。对于两个用户表,可以使用如下解决方案:

$sql = "SELECT * FROM employeedb.employee_user_table WHERE employee_id = '???'";
  • 创建新表。例如:带有字段的全局用户表:

    • 用户id
    • 通过
    • 表_源(实表源)
    • 是特别的用户(或类似的)
    • 附加字段1
    • 附加_字段2
    • 等等等等等等
  • 每次用户登录时,让它检查此表,并将表源存储在会话中,以供以后使用


我建议尽可能合并处理相同概念的表(此处的用户)

这里的问题是数据访问安全性,无论数据是如何存储的(一个或两个表,一个或两个数据库)

使用MySQL(以及许多其他常见的DBMS),您可以:

  • 创建一个MySQL帐户,该帐户只能访问某些表,只能对其执行某些操作(例如仅选择),只能访问某些列等

  • 从MySQL帐户隐藏一个表,并且只允许访问该表上的视图(过滤列/表结果)

无论您的数据结构是什么,您都需要检查一些员工数据(登录、密码、权限等),并且您的代码必须使用具有足够权限的MySQL帐户

因此,我建议您将用户放在一个表中,添加表来描述角色(员工、客户等),并明智地编写代码


请记住分别解决数据库设计和数据访问安全问题。数据访问安全性不应导致您在数据库设计中做出不合逻辑的选择。

我建议尽可能合并处理相同概念的表(此处的用户)

这里的问题是数据访问安全性,无论数据是如何存储的(一个或两个表,一个或两个数据库)

使用MySQL(以及许多其他常见的DBMS),您可以:

  • 创建一个MySQL帐户,该帐户只能访问某些表,只能对其执行某些操作(例如仅选择),只能访问某些列等

  • 从MySQL帐户隐藏一个表,并且只允许访问该表上的视图(过滤列/表结果)

无论您的数据结构是什么,您都需要检查一些员工数据(登录、密码、权限等),并且您的代码必须使用具有足够权限的MySQL帐户

因此,我建议您将用户放在一个表中,添加表来描述角色(员工、客户等),并明智地编写代码


请记住分别解决数据库设计和数据访问安全问题。数据访问安全性不应导致您在数据库设计中做出不合逻辑的选择。

是否有理由拥有两个数据库?什么是“完全隔离”?您可以在同一数据库中设置权限将涉及多少数据库用户?将涉及多少数据库用户?连接到db服务器的用户我认为许多数据库都没有用,那么有什么理由拥有两个数据库?完全隔离是什么意思?您可以在同一数据库中设置权限将涉及多少数据库用户?将涉及多少数据库用户?连接到db服务器的用户我认为许多数据库都没有用,这就是我目前倾向的解决方案。在网站的表格中,我们可以有普通用户,也可以有“特殊用户”,其中包含员工数据库中用户的ID。有了这条信息,我们首先对网站用户进行身份验证,看看是否有匹配项。如果我们不这样做,我们将根据员工数据库进行身份验证以获得用户id。然后,我们将用户id与客户数据库中的“特殊用户”进行匹配,以查看他们是否有权访问该站点。在这种情况下,可以针对“特殊用户”存储客户站点上的权限。不过,上述方法似乎非常复杂。这就是我目前倾向于使用的解决方案。在网站的表格中,我们可以有普通用户,也可以有“特殊用户”,其中包含员工数据库中用户的ID。有了这条信息,我们首先对网站用户进行身份验证,看看是否有匹配项。如果我们不这样做,我们将根据员工数据库进行身份验证,以获得用户id。然后,我们将用户id与“特殊u