MySQL 新加用户及授权
-- 登录数据库
MySQL -uroot -p
-- 查询当前用户
- ,SELECT User, Host FROM MySQL.user;
- ,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)
来源: http://www.bubuko.com/infodetail-3116143.html