mysql - 授予 MySQL 中各个字段的权限

标签 mysql permissions

我有 MySQL 数据库,里面有几个表。其中之一当然是用于存储用户名和密码的用户表(其中还包含其他信息)。对于架构中的所有表,我希望能够授予用户(或组)对各个字段的权限。也许一个例子会有所帮助:

有一个名为 ACCOUNTS 的表。在此表中,用户填写(并保持最新)有关其公司的所有数据(名称、地址、POC 等)。但我还希望将字段附加到该表,这些字段对那些用户来说是只读的,例如 LastPaymentDate(不能让他们更改它!)。此外,在这些用户中,权限不同。例如,管理员/ super 用户可以更改公司的名称和地址,但标准用户不应该。

我认为这可能需要通过为表创建多个 View 来完成,每个 View 对应一个权限级别(组)。我对 MySQL 比较陌生,所以我不知道这是否是最好的方法。我还可以看到一个查找表,其中说明允许查看/编辑哪些字段。

我最初的想法是在评论(或字段名称)中包含一个 0-5 的值,然后用户将具有权限级别(0-看不到;1-只读;2 -读写;3-(未使用);4-(未使用);5-编辑/删除字段本身。

有什么建议吗?意见?查找表以确定显示哪些字段?同样,它不是针对整个表格,而是针对表格中的每一列。

最佳答案

您可以使用以下代码向用户授予对各个列的权限:

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 ROLES(权限组)。

关于mysql - 授予 MySQL 中各个字段的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16674715/

相关文章:

mysql - 无法使用 group by 从多对多关系表中获取所有匹配项

php - 让 PDO(或 mysqli 扩展)在数据库上运行查询时出现问题

MySQL子查询引用其范围之外的表

security - 如何防止直接浏览 Web 目录中的图像?

security - 在 Plone 中隐藏未经身份验证的用户的文件夹内容

php - 使用两个表作为输入数据,按字母顺序对 MySQL 中的列表进行排序

php - 从表单上的 Post 请求创建 SQL 表

visual-studio - 为 IIS 使用 Web 部署工具 - 使用管理员帐户,但不适用于 IIS 或 Windows 用户帐户

仅适用于某些情况的 Android 权限

ios - 是什么原因导致此 iOS 权限提示 "use Bluetooth for new connections"?