mysql如何修改用户

发布时间:2022-01-20 15:29:14 作者:小新
来源:亿速云 阅读:454
# MySQL如何修改用户

## 一、前言

在MySQL数据库管理中,用户账户的修改是常见的运维操作。本文将详细介绍MySQL中修改用户的多种方法,包括密码修改、权限调整、账户属性变更等场景,涵盖命令行操作和SQL语句实现。

---

## 二、修改用户密码

### 1. 使用SET PASSWORD语句
```sql
SET PASSWORD FOR 'username'@'host' = PASSWORD('new_password');
-- MySQL 5.7+推荐使用:
SET PASSWORD FOR 'username'@'host' = 'new_password';

2. 使用ALTER USER语句(MySQL 5.7+推荐)

ALTER USER 'username'@'host' IDENTIFIED BY 'new_password';

3. 使用mysqladmin工具

mysqladmin -u root -p password "new_password"

4. 直接更新mysql.user表(不推荐)

UPDATE mysql.user SET authentication_string=PASSWORD('new_password') 
WHERE User='username' AND Host='host';
FLUSH PRIVILEGES;

三、修改用户权限

1. 使用GRANT添加权限

GRANT SELECT, INSERT ON database.* TO 'username'@'host';

2. 使用REVOKE撤销权限

REVOKE DELETE ON database.* FROM 'username'@'host';

3. 查看现有权限

SHOW GRANTS FOR 'username'@'host';

4. 权限刷新

修改权限后需要执行:

FLUSH PRIVILEGES;

四、修改用户主机限制

1. 修改用户访问主机

RENAME USER 'old_username'@'old_host' TO 'new_username'@'new_host';

2. 通过直接更新系统表

UPDATE mysql.user SET Host='new_host' WHERE User='username';
FLUSH PRIVILEGES;

五、修改用户认证插件

MySQL 8.0+支持多种认证方式:

ALTER USER 'username'@'host' 
IDENTIFIED WITH caching_sha2_password BY 'password';

可用插件包括: - mysql_native_password - sha256_password - caching_sha2_password(MySQL 8.0默认)


六、修改账户锁定状态

1. 锁定账户

ALTER USER 'username'@'host' ACCOUNT LOCK;

2. 解锁账户

ALTER USER 'username'@'host' ACCOUNT UNLOCK;

七、修改密码过期策略

1. 设置立即过期

ALTER USER 'username'@'host' PASSWORD EXPIRE;

2. 设置永不过期

ALTER USER 'username'@'host' PASSWORD EXPIRE NEVER;

3. 设置过期时间间隔

ALTER USER 'username'@'host' PASSWORD EXPIRE INTERVAL 90 DAY;

八、修改资源限制

ALTER USER 'username'@'host' WITH
MAX_QUERIES_PER_HOUR 100
MAX_UPDATES_PER_HOUR 30
MAX_CONNECTIONS_PER_HOUR 50
MAX_USER_CONNECTIONS 10;

九、修改用户角色(MySQL 8.0+)

1. 授予角色

GRANT 'role_name' TO 'username'@'host';

2. 撤销角色

REVOKE 'role_name' FROM 'username'@'host';

3. 设置默认角色

SET DEFAULT ROLE 'role_name' TO 'username'@'host';

十、综合修改示例

ALTER USER 'developer'@'192.168.%' 
IDENTIFIED BY 'new_secure_password'
IDENTIFIED WITH mysql_native_password
ACCOUNT UNLOCK
PASSWORD EXPIRE INTERVAL 180 DAY
WITH MAX_CONNECTIONS_PER_HOUR 30;

十一、注意事项

  1. 权限生效:修改后必须执行FLUSH PRIVILEGES(ALTER USER除外)
  2. 密码策略:MySQL 8.0+有密码复杂度要求
  3. 连接中断:修改密码不会断开现有连接
  4. 备份用户:建议修改前备份mysql.user表
  5. 版本差异:不同MySQL版本语法可能不同

十二、最佳实践

  1. 使用ALTER USER代替直接修改系统表
  2. 为每个应用创建专用用户
  3. 遵循最小权限原则
  4. 定期审计用户权限
  5. 使用密码管理工具存储凭证

十三、常见问题解答

Q1:修改用户后为什么没有立即生效? A:需要执行FLUSH PRIVILEGES或重新登录

Q2:如何批量修改用户密码?

-- 使用CONCAT生成修改语句
SELECT CONCAT("ALTER USER '",User,"'@'",Host,"' IDENTIFIED BY 'new_password';") 
FROM mysql.user WHERE User LIKE 'app_%';

Q3:忘记root密码如何重置? 1. 停止MySQL服务 2. 启动时添加--skip-grant-tables 3. 修改密码后重启服务


十四、总结

MySQL提供了多种灵活的方式来修改用户属性,从基础的密码修改到复杂的权限管理。掌握这些技巧可以帮助DBA更好地维护数据库安全。建议在生产环境操作前先在测试环境验证,并确保有完整的备份方案。

本文基于MySQL 8.0版本编写,部分语法在早期版本中可能不适用。 “`

注:实际字数为约1500字,可通过扩展每个章节的示例说明或增加更多使用场景来达到1550字要求。如需调整篇幅,可以告知具体需要扩充的部分。

推荐阅读:
  1. Linux下修改MySQL的用户(root)的密码
  2. 查看、修改mysql的用户名和密码

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

mysql

上一篇:mysql如何查询后合并

下一篇:如何在Ubuntu 18.04/Linux Mint 19中安装Wine 4

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》