首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在两个数据库之间共享用户

问在两个数据库之间共享用户
EN

Stack Overflow用户
提问于 2011-03-12 19:29:55
回答 2查看 245关注 0票数 1

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

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

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

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

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

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

干杯:)

EN

回答 2

Stack Overflow用户

发布于 2011-03-12 22:47:24

我建议在可能的情况下,总是合并处理相同概念的表(这里是用户)。

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

使用MySQL (和许多其他常见的数据库管理系统),您可以:

  • 创建一个MySQL帐户,该帐户只能访问某些表,只能对其执行某些操作(例如,仅限SELECT),只能访问某些列等。
  • 向MySQL帐户隐藏表,并仅提供对该表的视图的访问权限(筛选列/表结果)。

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

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

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

票数 1
EN

Stack Overflow用户

发布于 2011-03-12 19:52:12

你可以这样做:

代码语言:javascript
复制
$sql = "SELECT * FROM employeedb.employee_user_table WHERE employee_id = '???'";

作为来自线程启动器的注释问题。对于两个用户表,您可以使用如下解决方案:

  • 创建新表。例如:字段为:

的global_user_table

代码语言:javascript
复制
- user\_id
- pass
- table\_source (real table source)
- is\_special\_user (or something like that)
- additional\_field1
- additional\_field2
- etc, etc, etc

​

  • 每次用户登录时,让它检查此表并将table_source存储在会话中,以供以后使用。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5282215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档