繁体   English   中英

mysql数据库和多个用户

[英]mysql database and multiple users

我正在一个将有多个用户的网站上工作。 假设总共有5个用户。我需要确保的是,每个用户只能访问他们输入的数据。

考虑一下CRM或工作委员会。 因此,john将只能访问johns信息,进行编辑,添加等。与jane和june相同。

现在,如果我的阅读是正确的,我所要做的就是确保查询仅根据其唯一ID正确提取数据吗?

因此,用户的数据库表如下所示:

Database: xxxxx, Table: xh_user
user_id 
user_username
user_fname
users_email
users_password 
users_salt

因此,如果johns user_id为7,则当他登录时,它将查询其id并仅显示数据库中的内容。

我对此是否正确?或者是否有其他或更好的方法来实现这一目标?

只要正确设置了外键,以便将数据链接到user_id (PK)就可以了。 另外,您可以设置一个包含访问权限的user_roles表。

据我所知以及如何编程,是的。 如果您正在寻找额外的安全性,也许对照数据库中的内容检查用户的密码/盐。

li需要做的是确保查询仅根据其唯一ID提取数据

我不确定您的意思是什么,但这太笼统了,不管是好是坏。 这实际上取决于您正在构建的系统。 这绝不是一般适用的声明。

现在,在您当前的设置中,这看起来有些正确,但是从长远来看,您可能需要一些数据是公开的,或者至少需要几个人可以访问。 在您当前的设计中这是不可能的。

我将访问权限和内容分开,因为它们是分开的东西。 保存哪些用户(或查找基于角色的模式)可以访问单独表中的哪些数据,因此您可以在以后的数据上进行构建,并添加多个用户功能。

这可能是一个漫长的讨论,因此我将以以下内容结束:所有数据库设计的底线是,您应该以代表逻辑单元的方式保存信息,就像在现实世界中一样(是的,我正在一些快捷方式)。 因此,将用户名与ID耦合似乎是正常的。 但是,在工作和用户之间建立联系本身并不是那么合理。 一项工作对多个用户可见,不费吹灰之力。 或者一个用户可能已经添加了该信息。 您可以说只有1个用户是作业或任何其他数据的“所有者”,但是似乎过于严格以至于无法完全由谁“拥有”数据来进行访问控制。

但是话又说回来,这只是对未来的警告。 如果您从不需要,则不需要。

您可以有多个数据库,每个用户一个。 不过,您将需要一种方法来进行架构更改和升级,例如phinx。 除非您预见到用户拥有多个自己帐户的用户,否则我不建议您这样做。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM