mysql权限管理
用户授权
mysql> grant all privileges on *.* to 'dot2'@'%' identified by '123456';
-
all privileges:表示将所有权限授予给用户。也可指定具体的权限,如:SELECT、CREATE、DROP等。
-
on:表示这些权限对哪些数据库和表生效,格式:数据库名.表名,这里写“*”表示所有数据库,所有表。如果我要指定将权限应用到test库的user表中,可以这么写:test.user
-
to:将权限授予哪个用户。格式:”用户名”@”登录IP或域名”。%表示没有限制,在任何主机都可以登录。比如:”yangxin”@”192.168.0.%”,表示
dot2
这个用户只能在192.168.0.*
IP段登录 -
identified by:指定用户的登录密码
可以使用GRANT给用户添加权限,权限会自动叠加,不会覆盖之前授予的权限,比如你先给用户添加一个SELECT权限,后来又给用户添加了一个INSERT权限,那么该用户就同时拥有了SELECT和INSERT权限。
刷新权限
mysql> flush privileges;
查看用户权限
mysql> SHOW GRANTS FOR 'root'@'localhost';
注意 @ 后面的主机名也很重要
回收权限
mysql> revoke create on *.* from 'dot2'@'localhost';
mysql> flush privileges;
可能需要重新连接数据库,权限才生效。
删除用户
mysql> select host,user from user;
mysql> drop user 'dot2'@'localhost';
用户重命名
mysql> rename user 'dot2'@'%' to 'dot2com'@'%';
修改密码
mysql> ALTER USER 'dot2'@'localhost'IDENTIFIED BY '新密码';