mysql用户及权限(WITH GRANT OPTION)

添加用户授权方法一:

create user 'user'@'ip' identified by 'password';
grant SELECT on op_db.* to 'user'@'ip' with grant option;
flush privileges;


create user 'root'@'127.0.0.1' identified by '****';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' WITH GRANT OPTION;
flush privileges;

添加用户授权方法二:

grant SELECT on op_db.* to 'user'@'ip' identified by 'password' with grant option;
flush privileges;

WITH GRANT OPTION 这个选项表示该用户可以将自己拥有的权限授权给别人。

注意:经常有人在创建操作用户的时候不指定WITH GRANT OPTION选项导致后来该用户不能使用GRANT命令创建用户或者给其它用户授权。
如果不想这个用户有这个grant的权限,可以不加这句

查询数据库用户及IP:

select user ,user from mysql.user;

查询该用户指定ip所拥有的权限

SHOW GRANTS FOR 'user'@'ip';

权限收回:

revoke SELECT ON op_db.* FROM 'user'@'ip';

删除用户:

drop user 'user'@'ip';

修改mysql密码

mysql> ALTER USER 'jeffrey'@'localhost' IDENTIFIED BY 'mypass';
mysql> SET PASSWORD FOR 'jeffrey'@'localhost' = PASSWORD('mypass');
       SET PASSWORD FOR 'username'@'%' ='HQLM2017';
mysql> GRANT USAGE ON *.* TO 'jeffrey'@'localhost' IDENTIFIED BY 'mypass';
mysql> update mysql.user set authentication_string=password('******') where user='cmbh';

注意

如果忘记root密码,而有一个超级权限的普通用户,也可以用拥有超级权限的普通用户修改root密码

UPDATE USER SET authentication_string=PASSWORD('******') WHERE USER='root';

修改当前会话本身用户密码的方式包括:

mysql> ALTER USER USER() IDENTIFIED BY 'mypass';
mysql> SET PASSWORD = PASSWORD('mypass');
       set password='Z%Q-#oxn';
posted @ 2020-12-31 10:20  whiteY  阅读(3237)  评论(0编辑  收藏  举报