ホームページ >データベース >mysql チュートリアル >MySQL学习笔记之二十四 撤销用户和授权_MySQL

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

WBOY
WBOYオリジナル
2016-06-01 13:12:111151ブラウズ

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。