当前位置:Gxlcms > mysql > MySQL学习笔记之二十四撤销用户和授权_MySQL

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

时间:2021-07-01 10:21:17 帮助过:11人阅读

撤销用户和授权的有两种方法,一是使用 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;

人气教程排行