【发布时间】:2011-01-16 00:07:35
【问题描述】:
表上是否有任何权限或授权命令使用户无法删除其他用户插入的记录(行)。但允许他们删除或更新自己的记录?
谢谢, 斯蒂芬
【问题讨论】:
-
为每个用户创建一个单独的表? (开个玩笑,那太可怕了(但我已经看到了))
-
哦,她是如何管理 500 个用户的?
标签: mysql permissions
表上是否有任何权限或授权命令使用户无法删除其他用户插入的记录(行)。但允许他们删除或更新自己的记录?
谢谢, 斯蒂芬
【问题讨论】:
标签: mysql permissions
不,这应该由在 MySQL 之上运行的应用程序解决。
【讨论】:
不完全确定以下内容是否适用于您的情况,但我想我不妨建议它——也许它会有所帮助。您可以为每个用户创建一个可更新的视图(使用sql security definer),该视图仅选择那些用户的记录,并授予用户删除视图而不是它从中选择的表的能力——使用sql security definer,用户应该然后能够从导致从表中删除的视图中删除。每次用户创建新记录时,您还必须更新视图(否则视图在创建时被“冻结”)。请参阅 create view 和 updatable views 的文档。
【讨论】:
你应该使用编程语言来实现 acl。像zend 这样的一些库会为你完成这项工作(使用 php 语言)。
【讨论】: