当前位置: 首页 > 面试题库 >

如何撤销一张表的MySQL用户权限?

董子航
2023-03-14
问题内容

当我为用户授予某些特定表的特权时:

GRANT ALL PRIVILEGES ON table1.* TO 'user1'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON table2.* TO 'user1'@'localhost' IDENTIFIED BY 'password';

我如何撤销仅此用户的特权table1


问题答案:

Google是您的朋友!
http://dev.mysql.com/doc/refman/5.7/en/revoke.html

句法:

REVOKE ALL PRIVILEGES ON table1.* FROM 'user1'@'localhost';

为了进一步解释这个答案-我将教如何钓鱼(而不是只给你一条鱼)。

首先,MySQL文档可能看起来令人困惑-“语法”REVOKE如下所示:

REVOKE
    priv_type [(column_list)]
      [, priv_type [(column_list)]] ...
    ON [object_type] priv_level
    FROM user [, user] ...

REVOKE ALL PRIVILEGES, GRANT OPTION
    FROM user [, user] ...

REVOKE PROXY ON user
    FROM user [, user] ...

这意味着有3种“方式”来称呼它:

  1. REVOKE priv_type ...
  2. REVOKE ALL PRIVILEGES, GRANT ...
  3. REVOKE PROXY ON ...

这三个用MySQL文档页面中的空白行分隔。

对于每个选项,都有“可选”参数/设置/值。这些用方括号表示,例如:

REVOKE priv_type [(column_list)] ...

(column_list)是可选的。你可以提供,但你不要 来。

更新的注释,2019年12月:

priv_type正是让我们知道我们可以指定的内容ALL PRIVILEGES;因为上面链接的文档中告诉我们:

有关特权级别,允许的priv_typepriv_levelobject_type values以及用于指定用户和密码的语法的详细信息,请参见第13.7.1.4节``GRANT语句’‘。

第13.7.1.4节指出:

MySQL支持的特权

下表总结了可以为GRANTandREVOKE语句指定的允许的priv_type特权类型,以及可以授予每个特权的级别。

  • ALL [PRIVILEGES] 授予指定访问权限的所有特权

结束更新。

同样,您可以将它们链接在一起-它们缩进了下一行以表明这一点(并用来...表明您可以继续重复):

priv_type [(column_list)]
  [, priv_type [(column_list)]] ...    <-- indented, and note the "..."

MySQL文档中存在更复杂的示例-就像CREATE TABLE您有可选标志的列表一样:

[COLUMN_FORMAT {FIXED|DYNAMIC|DEFAULT}]

{x|y|z}句法表示您 必须 指定其中之一({...}非可选的[...]手段里面的东西是可选的-
因此,如果指定COLUMN_FORMAT,在以下三个标志之一 所需 ),管道(|)表示只能指定 一个 的列表(FIXED/DYNAMIC/ DEFAULT)。

最后一件要说的事-非常了解MySQL文档 版本 。它在网站上的多个地方都有说明-我个人只是看一下URL:

http://dev.mysql.com/doc/refman/5.7/en/create-table.html

请注意它说5.7。这意味着您正在阅读的文档 可能 不适用于除MySQL
5.7以外的任何版本。这让我很痛苦……很多时候,当我在枪口之下试图解决某些紧急情况时,我总是感到痛苦。始终仔细检查它。



 类似资料:
  • 问题内容: 我们正在合理化数据库用户的权限,为此,我们希望撤销授予所有用户(但不是特定角色)的架构中所有表的所有选择权限。 我尝试使用一些正则表达式为每个表创建一个通用表,使其类似于: 从USER1,USER2,USER3 …撤消对TABLE1的选择; 从USER1,USER2,USER3 …撤消对TABLE2的选择; 但是,由于并非所有用户都被授予了对所有表的权限,因此会导致oracle错误:

  • 本文向大家介绍mysql5.7创建用户授权删除用户撤销授权,包括了mysql5.7创建用户授权删除用户撤销授权的使用技巧和注意事项,需要的朋友参考一下 一, 创建用户:        命令:        说明:username - 你将创建的用户名, host - 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%. p

  • 本文向大家介绍Postgresql 赋予用户权限和撤销权限的实例,包括了Postgresql 赋予用户权限和撤销权限的实例的使用技巧和注意事项,需要的朋友参考一下 1、对数据库授权 postgresql 授权某个数据库的权限给wang 账号 使该账号 只能操作指定DB 不能操作其他DB 配置权限 对表授权 撤销授权 撤销对数据库授权 撤销对表授权 对当前库中所有表去掉public的所有访问权限,为

  • 好的一天,我正试图让应用程序捕捉图像,然后在gridview中显示它,但当我单击按钮开始捕捉时,这个错误出现了。 logcat: 我的代码:

  • 当我想要注销时,我调用以下代码: 怎么修?

  • 正如这里提到的http://projects.spring.io/spring-security-oauth/docs/oauth2.html,撤销是通过刷新令牌完成的。但这似乎不起作用。