mysql启动选项只读_MySql:授予只读选项?

If there is any single privilege that stands for ALL READ operations on database.

这取决于你如何定义“所有读”。

从表和视图中“读取”是SELECT特权。如果这是你的意思是“所有读”,然后是:

GRANT SELECT ON *.* TO 'username'@'host_or_wildcard' IDENTIFIED BY 'password';

然而,它听起来像你的意思是“看到”一切,“看起来但不触摸”的能力。所以,这里是其他种类的阅读,请记住:

“读取”视图的定义是SHOW VIEW权限。

“读取”其他用户当前正在执行的查询的列表是PROCESS权限。

“读取”当前复制状态是REPLICATION CLIENT权限。

请注意,任何或所有这些可能会暴露更多的信息,而不是您打算公开,这取决于相关用户的性质。

如果这是你想要做的阅读,你可以在一个GRANT语句中结合任何这些(或任何其他the available privileges)。

GRANT SELECT, SHOW VIEW, PROCESS, REPLICATION CLIENT ON *.* TO ...

然而,没有单一的权限授予一些子集的其他特权,这是什么听起来像你问。

如果你是手工做事情,寻找一个更简单的方法来实现这一点,而不需要记住通常为某一类用户准确授予,您可以查找语句以重新生成类似用户的授权,并更改它创建具有类似权限的新用户:

mysql> SHOW GRANTS FOR 'not_leet'@'localhost';

+------------------------------------------------------------------------------------------------------------------------------------+

| Grants for not_leet@localhost |

+------------------------------------------------------------------------------------------------------------------------------------+

| GRANT SELECT, REPLICATION CLIENT ON *.* TO 'not_leet'@'localhost' IDENTIFIED BY PASSWORD '*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' |

+------------------------------------------------------------------------------------------------------------------------------------+

1 row in set (0.00 sec)

更改“not_leet”和“localhost”以匹配要添加的新用户以及密码,将导致可重用的GRANT语句创建新用户。

如果你想要一个单一的操作设置和授予有限的权限集合给用户,并且可能删除任何未合并的权限,可以通过创建一个存储过程来封装你想要做的一切。在过程的正文中,您将使用动态SQL构建GRANT语句和/或直接操作授予表本身。

在this recent question on Database Administrators,海报希望无特权的用户修改其他用户的能力,这当然不是通常可以做的事情 – 可以修改其他用户的用户,几乎根据定义,不是没有特权的用户 – 然而,存储过程在这种情况下提供了一个很好的解决方案,因为它们与其DEFINER用户的安全上下文一起运行,允许任何对程序具有EXECUTE特权的人临时承担升级的权限,以允许他们完成过程完成的特定事情。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值