gpt4 book ai didi

mysql根据字段值自定义用户权限

转载 作者:行者123 更新时间:2023-11-29 05:38:30 27 4
gpt4 key购买 nike

是否可以创建一个 MySQL 用户名,该用户名只能访问具有特定值的表中的数据

例如可以访问的“root”用户名“user1”

ID    |   USER_ID    |  TEXT
======+==============+===============
1 | 1 | This is text a
2 | 1 | This is text b
3 | 2 | This is text c (hidden)
4 | 1 | This is text d

这样他们就只能看到 ID 1,2 和 4 而其他人将无法访问、没有结果或类似的东西?

最佳答案

您可以通过创建一个排除 MySQL 用户不应访问的记录的 View 来做到这一点:

/* Create a view that excludes records not belonging to USER_ID=1 */
CREATE VIEW restrict_vw AS (
SELECT
ID,
USER_ID,
TEXT
FROM tbl
WHERE USER_ID = 1
);

/* Remove privileges from the underlying table */
REVOKE ALL ON dbname.tbl FROM user1@host;
/* And grant SELECT only on the view */
GRANT SELECT ON dbname.restrict_vw TO user1@host IDENTIFIED BY 'password';

想法是撤销数据库的所有权限,包括基础表,然后仅将 SELECT 权限授予 View 。特权不会转移到基础表,因此用户将无法访问 View 未公开的任何记录。

关于mysql根据字段值自定义用户权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8689289/

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