好的......我正在努力创建一个移动应用,允许两组用户做两件事。
基本上,该项目的目标是:
A组用户:创建帐户/ pswd并可以将他们的数据输入数据库和/或更改他们现有的数据(但仅限于他们的数据)
B组用户:可以搜索数据库以获取A组插入的信息。在轨道上我想设置它以便他们可以创建用户帐户,这样他们也可以将关键信息保存到他们的帐户以便更快地回忆(因此他们不必查找他们定期搜索的信息) - 但这是在轨道上。
我使用我的网络托管帐户提供的mySQL设置了关系数据库(这似乎是最简单的方法)。
我只是想弄清楚如何处理用户帐户创建/身份验证位,因为每个组只能将数据更改/插入自己的帐户,但可以搜索其他人提交的信息。< / p>
提前致谢。
答案 0 :(得分:0)
使用mysql设施管理权限:角色,用户和权限。
浏览mysql官方文档(即http://dev.mysql.com/doc/workbench/en/wb-adding-roles.html)。
您可以创建两个角色:groupA可以INSERT/SELECT/UPDATE
一组表,groupB可以执行相同但在另一组表中。
您可以在所需的表格中分配INSERT
权限,但在所有表格上分配SELECT
权限。
希望这些信息能为您带来一些启示......
答案 1 :(得分:0)
首先,这听起来像一个巨大的项目,我相信有一些框架可以为你做到这一点。但是,如果您正在尝试自己继续阅读。 这可以通过几种方式完成。我会尽量详细说明。这需要SQL以及应用程序开发/软件工程知识。
第1步:设置数据库 您将需要以下表格:所有ID都是自动递增的主键,其他字段可以是varchar,除了名称中包含日期的字段
我更喜欢使用Java或python,因为你可以使用依赖注入或装饰器。因此,在检查用户是否具有访问权限时,您不必编写大量代码。
全部付诸实践。
1. When a user signs up, you save them into a user database. Depending on the user type, you give them different permissions. Next, you save the user permissions inside the user_resourcescope table.
您现在应该拥有以下内容。 用户表
UID | first | last | email | username | salted_pwd | usertype
1 | james | iri | example@isp.com | jiri1928 | klasdjf8$kljs | 1
UserType表
usetype_id | Name
1 | Basic users
2 | Searcher
ResourceScope表
rid | Name
1 | FindContent
2 | CreateContent
3 | DeleteContent
User_Resourcescope
id | uid | rid
1 | 1 | 1
2 | 1 | 3
会话
id | uid | random_token | datecreated
1 | 1 | ldkjfald882u3u | 1391274870322
每个资源代表系统内的请求。例如,
http://api.myapi.com/content/add - This would be associated with the ResourceScope CreateContent
http://api.myapi.com/content/delete- This would be associated with the ResourceScope CreateDelete
http://api.myapi.com/content/search - This would be associated with the ResourceScope SearchContent
当有人尝试创建内容时,您可以通过验证其会话信息来检查其信用是否正确,并通过检查User_Resourcescope表来检查他们是否拥有正确的权限。
To prevent users from deleting content that is not theirs. Inside the content table you can add a creator field and put the user id associated with the content. And if someone try to delete content you can check their user id against the creator field.