Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 阻止除一个用户之外的任何用户访问表_Mysql - Fatal编程技术网

Mysql 阻止除一个用户之外的任何用户访问表

Mysql 阻止除一个用户之外的任何用户访问表,mysql,Mysql,我有一个包含许多表的数据库 我想阻止除一个以外的任何用户访问此表。所有用户还需要能够访问在此类数据库中创建的任何未来表,当然,我不可能添加/删除对这些表的访问,因为有些表只是为了编写脚本而创建的临时表 比如: GRANT ALL PRIV ON *.* TO user123 ... REVOKE ALL PRIV ON mydb.table FROM user123 如果有些表是临时的,为什么不直接将它们创建为临时的表呢?然后,只有创建它们的会话才能访问它们 您可以轻松地授予表上的权限,然后撤

我有一个包含许多表的数据库

我想阻止除一个以外的任何用户访问此表。所有用户还需要能够访问在此类数据库中创建的任何未来表,当然,我不可能添加/删除对这些表的访问,因为有些表只是为了编写脚本而创建的临时表

比如:

GRANT ALL PRIV ON *.* TO user123 ...
REVOKE ALL PRIV ON mydb.table FROM user123

如果有些表是临时的,为什么不直接将它们创建为
临时的
表呢?然后,只有创建它们的会话才能访问它们

您可以轻松地授予表上的权限,然后撤销单个表的权限,但无法轻松地继续维护该权限


另一种选择是将需要不同权限的表放在单独的数据库中。当然,它需要管理两个数据库的权限,因此可能会比较混乱,但这有点接近目标。

有一个很好的表权限参考指南。我想它有你需要的。如果您也需要其他特权,本指南前面也提到了这些特权。

实际上可以使用不同的数据库。这是一个庞大的系统,但搜索替换和几秒钟的停机可能是关键所在。我将继续讨论这个问题,看看是否还有其他人有更好的解决方案,但到目前为止,这听起来是最好的。