我有一个MySQL数据库,里面有几个表。当然,一个是users表,用于存储用户名和密码(该表还包含用户的其余信息)。对于模式中的所有表,我希望能够授予用户(或组)对单个字段的权限。也许下面的例子会有所帮助:
有一个名为ACCOUNTS的表。在这个表中,用户填写(并保持最新)关于他们公司的所有数据(名称、地址、POC等)。但我也想让这些用户只读的字段附加到这个表中,例如LastPaymentDate (不能让他们更改!)。此外,在这些用户中,权限不同。例如,管理员/超级用户可以更改公司的名称和地址,但标准用户不能。
我认为这可能需要通过为表创建几个视图来实现,每个级别的权限(组)对应一个视图。我对MySQL比较陌生,所以我不知道这是不是最好的方式。我还可以看到一个查询表,说明允许查看/编辑哪些字段。
我最初的想法是在评论(或字段名称)中包含一个从0到5的值,然后用户将拥有一个权限级别(0-看不到;1-只读;2-读写;3-(未使用);4-(未使用);5-编辑/删除字段本身。
有什么建议吗?有什么看法?查找表来确定要显示哪些字段?同样,它不适用于整个表,也不适用于表中的每一列。
发布于 2013-05-22 00:24:02
您可以使用以下代码将单个列的权限授予用户:
GRANT SELECT (col1), INSERT (col1,col2) ON mydb.mytbl TO 'someuser'@'somehost';下面是一个例子:
http://dev.mysql.com/doc/refman/5.1/en/grant.html
此外,在MySQL中也不支持用户组或SQL角色(即特权组)。
https://stackoverflow.com/questions/16674715
复制相似问题