MySQL学习笔记之二十五 撤销用户和授权

    撤销用户和授权的有两种方法,一是使用 REVOKE 语句,二是直接修改授权表。 

    一、使用 REVOKE 语句撤销授权 

    为了收回某个用户的权限,可使用 REVOKE 语句。除了要用 FROM 替换 TO 并且没 有 IDENTIFIED BY 或 WITH GRANT OPTION 子句外。

    语法:REVOKE privileges (columns) ON what FROM user; user 

    部分必须页你想要取消其权限的用户的原始 GRANT 语句的 user 部分相匹配。

     Privileges 部分不需要匹配,你可用 GRANT 语句授权,然后用 REVOKE 语句取消启 动的一部分。

    REVOKE 语句只删除权限,不删除用户。用户的项仍然保留在 user 表中,即使你去 笑了改用户的所有权限也是如此。这意味着该用户仍然可以连接到服务其上。要删除整个 用

户,必须用 DELETE 语句将该用户的记录从 user 表中直接删除。要想删除整个用户, 必须直接将该用户的记录从 user 表中直接删除。 

   例如,如果你为一个数据库授权,如果需要在 mysql.db 表中创建一个条目。 mysql>GRANT ALL ON sample.* TO kite@localhost IDENTIFIED BY "ruby"; 

    当所有为数据库的授权用 REVOKE 删除时,这个条目被删除。

     mysql>REVOKE ALL ON sample.* FROM kite@localhost; 

    但是,boris@localhost 用户的条目仍旧留在 user 表中,你可以查看: 

    mysql>SELECT * FROM mysql.user; 

    二、直接修改授权表撤销用户或授权

    显而易见,可以直接在授权表中给用户撤销授权,有时,这是唯一的方法,如撤销 一个用户。记住在你直接修改授权表时,你将通知服务器重载授权表,否则他不知道你的 

改变。你可以执行一个 mysqladmin flush-privileges 或 mysqladmin reload 命令和 FLUSH PRIVILEGES 语句强迫一个重载。如果你忘记做这个,你会疑惑为什么服务器不做

你想做 的事情。 

    在上节最后一个例子中,可以这样撤销用户: 

    mysql>DELETE FROM mysql.user      ->WHERE User=” kite” AND Host=” localhost”; 

    mysql>FLUSH PRIVILEGES; mysql>SELECT * FROM mysql.user; 

    DELETE 语句删除该用户的项,FLUSH 语句告诉服务器重新假造授权表(但是用 GRANT 或 REVOKE 语句,而不是直接修改授权表时,这些表将自动重新加载)。 

    而REVOKE ALL ON sample.* FROM boris@localhost 对应的,可以这样直接修改授 权表:

    mysql>DELETE FROM mysql.db      ->WHERE User=” boris” AND Host=” localhost” AND db=”sample”; 

    mysql>FLUSH PRIVILEGES; 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值