mysql账户授权

Posted gcixx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql账户授权相关的知识,希望对你有一定的参考价值。

mysql新加用户及授权

--登录数据库
mysql -uroot -p

--查询当前用户
1、SELECT User, Host FROM mysql.user;
2、select host,user,authentication_string from mysql.user;
--三种例子
1、mysql->create user ‘test‘@‘localhost‘ identified by ‘123‘;
2、mysql->create user ‘test‘@‘192.168.7.22‘ identified by ‘123‘;
3、mysql->create user ‘test‘@‘%‘ identified by ‘123‘;
/*host="localhost"为本地登录用户,host="ip"为ip地址登录,host="%",为外网ip登录*/

二,授权,赋予root所有数据库所有权限。
grant all on *.* to ‘root‘@‘%‘ identified by ‘V2ytEw7gqf#‘ with grant option;
---给root所有数据库权限,并且是任意主机
三,授权
---GRANT all ON user.* TO ‘user‘@‘%‘;
赋予user用户所有权限到user数据库
四,密码过期
数据库密码过期,修改密码
update mysql.user set authentication_string=password(‘zhifu.zzl33‘) where User="zhifuuser";##只是更新
SET PASSWORD FOR ‘zhifuuser‘@‘%‘ = PASSWORD(‘zhifu.zzl33‘);##更改密码,过期要使用此语句
flush privileges;##即时生效

可以在MySQL的配置文件中设置一个默认值,这会使得所有MySQL用户的密码过期时间都为90天,MySQL会从启动时开始计算时间。my.cnf配置如下:

[mysqld]
default_password_lifetime=90

如果要设置密码永不过期的全局策略,可以这样:(注意这是默认值,配置文件中可以不声明)

[mysqld]
default_password_lifetime=0

在MySQL运行时可以使用超级权限修改此配置:

mysql> SET GLOBAL default_password_lifetime = 90;
Query OK, 0 rows affected (0.00 sec)

还可以使用ALTER USER命令为每个具体的用户账户单独设置特定的值,它会自动覆盖密码过期的全局策略。要注意ALTER USER语句的INTERVAL的单位是“天”。

ALTER USER ‘testuser‘@‘localhost‘ PASSWORD EXPIRE INTERVAL 30 DAY;

禁用密码过期:

ALTER USER ‘testuser‘@‘localhost‘ PASSWORD EXPIRE NEVER;

让用户使用默认的密码过期全局策略:

ALTER USER ‘testuser‘@‘localhost‘ PASSWORD EXPIRE DEFAULT;

从MySQL 5.7.6版开始,还可以使用ALTER USER语句修改用户的密码:

mysql> ALTER USER USER() IDENTIFIED BY ‘637h1m27h36r33K‘;
Query OK, 0 rows affected (0.00 sec)

以上是关于mysql账户授权的主要内容,如果未能解决你的问题,请参考以下文章

远程连接mysql 授权方法详解

Mysql远程授权报语法错误

详解MySQL用户与授权MySQL日志管理数据乱码解决方案。

MySQL_8.0与5.7区别之账户与安全

MySQL最简单的指定数据库进行授权操作

MySQL的用户账户管理