gpt4 book ai didi

mysql - 如何仅将数据分配给具有特定角色的用户?

转载 作者:行者123 更新时间:2023-11-29 09:12:24 25 4
gpt4 key购买 nike

如果我只想将数据分配给具有管理员角色的用户,我将如何在数据库模式中表示它?即我有一个用户表、角色表、user_roles 表,并且该特定用户链接到管理员角色。那么我如何才能仅为管理员用户指定信息?

最佳答案

EDIT4:所以,如果我理解,您有用户表、角色表以及将用户链接到角色的关联。

一个想法是将值放入角色表中,然后基本上您将拥有多个管理级别的多个角色。

或者您可以在关联表中创建其他字段,以参数化关联,但这会影响所有其他关联。 (或者您可以:X 位于 B 组中,选项 1=1、选项 2=42、选项 3=NULL,并根据组不同地对待选项字段)

其他想法,但我会完全不同:

您将组视为用户,并使用特殊字段调用 isGroup [True/False]。然后创建 groupAssociation 表来存储哪个用户属于哪个组。

示例:

USER
--Id-- --IsGroup--
A False
B False
C True
D True

GROUPASSOCIATION
--uid-- --BelongsTo--
A C
B D
C D

请注意,您可以级联说 C 包含在 D 中。然后,您创建一个权限表并将组或用户与某些权限相关联。

PRIVILEGE
--Id-- --Name--
1 Access Area 1
2 Access Area 2
3 Modify user
4 Edit on StackOverflow

PRIVILEGEASSOCIATION
--uid-- --pid--
A 4
C 2
D 1
C 3

因此,用户 A 将拥有所有权限(一项直接权限,两项来自 C 组,一项用于 D 组,因为 C 包含在 D 中),而 B 将仅拥有一项权限(来自 D 组)

你的情况会更好吗?

<小时/>

EDIT3:鉴于您最后的评论,这不再有效GRANT 命令将帮助您解决问题。

您可以在那里看到它:GRANT

举个例子:

GRANT SELECT ON db2.invoice TO 'jeffrey'@'localhost';

您可以仅对列、所有表或所有数据库执行此操作

编辑:哦,好吧,让我检查一下组。我忘记了那部分。

EDIT2:我没有在 MySQL 中看到任何有关组权限调整的内容:this说这是不可能的,但它已经很旧了。但我遇到了另一个SO question他们正在使用 PHP 来管理组。

关于mysql - 如何仅将数据分配给具有特定角色的用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5206997/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com