当前位置:   article > 正文

MySQL 用户管理操作_通过mysql实现用户管理

通过mysql实现用户管理

目录

一、用户管理概述

二、用户管理

1、创建用户

2、删除用户

三、账户密码管理

1、root用户修改自己的密码

2、ROOT用户修改其他普通用户密码

3、普通用户修改自己的密码

 4、ROOT用户密码忘记解决办法

1)Linux系统

2)windows系统

四、用户权限

1、授予权限

2、查看权限

3、撤销权限


一、用户管理概述

MySQL是一个多用户的数据库,具有强大的访问控制系统,可以为不同用户指定允许的权限,MySQL用户可以分为普通用户和修改用户的密码等管理权限;普通用户只拥有被授予的各种权限。用户管理包括管理用户账户、权限等。

二、用户管理

1、创建用户

基本语法1---这也是最推荐使用的一种方法

CREATE USER <'用户名'@'地址'> IDENTIFIED BY ‘密码’;

 eg:

  1. mysql> create user 'test_user'@'localhost' identified by 'test@123';
  2. Query OK, 0 rows affected (0.00 sec)

 基本语法2---此方法慎用,因为user系统表中存储了全局级别的权限,以及影响其他账户的信息,如果破坏了user表中的记录,可能会对MySQL服务器造成很大的影响。

  1. insert into MySQL.user(Host,User,Password) values
  2. ('host','username',PASSWORD('password'));

基本语法三---推荐使用,同时可以给用户授权于权限

  1. GRANT SELECT ON *.* TO '用户名'@'主机名' IDENTIFIED BY '密码';
  2. FLUSH PRIVILEGES;

2、删除用户

基本语法1---推荐使用

drop user '用户名'@'主机号';

 eg:

  1. mysql> drop user 'test_user'@'localhost';
  2. Query OK, 0 rows affected (0.00 sec)
  1. 删除前查看用户表
  2. mysql> select Host,User from mysql.user;
  3. +-----------+-----------+
  4. | Host | User |
  5. +-----------+-----------+
  6. | % | root |
  7. | localhost | mysql.sys |
  8. | localhost | root |
  9. | localhost | test_user |
  10. +-----------+-----------+
  11. 4 rows in set (0.00 sec)
  12. 删除后查看用户表
  13. mysql> select Host,User from mysql.user;
  14. +-----------+-----------+
  15. | Host | User |
  16. +-----------+-----------+
  17. | % | root |
  18. | localhost | mysql.sys |
  19. | localhost | root |
  20. +-----------+-----------+
  21. 3 rows in set (0.00 sec)

 基本语法2

delete from mysql.user where User='要删除的用户名' and Host='要删除的用户的主机名';

三、账户密码管理

1、root用户修改自己的密码

语法1

mysqladmin -u root -h localhost -p password '新密码';

 eg:

  1. [root@master ~]# mysqladmin -u root -h localhost -p password 'fzw@123';
  2. Enter password:

语法2

  1. update mysql.user set Password=PASSWORD("新密码") where User="root" and Host="localhost";
  2. #修改完刷新一遍
  3. FLUSH PRIVILEGES;

 语法3

set PASSWORD=PASSWORD("新密码");

2、ROOT用户修改其他普通用户密码

 语法1

set PASSWORD FOR '用户名'@'主机名' =PASSWORD("新密码");

语法2

  1. update mysql.user set Password=PASSWORD("新密码")
  2. where Host='主机号' and User='用户名';

 语法3

grant usage on *.* to '用户名'@'主机号' identifed by '新密码';

3、普通用户修改自己的密码

语法

set PASSWORD=PASSWORD('新密码');

 4、ROOT用户密码忘记解决办法

1)Linux系统

先关闭mysql服务器

[root@master ~]# systemctl stop mysqld

在/etc/my.cnf文件中添加下面命令

  1. vim /etc/my.cnf
  2. #在该文件[mysql]标签下任意位置添加此命令
  3. skip-grant-tables

 保存后退出

启动mysql服务器,再次登录mysql就不需要输入密码了,然后再用上面修改密码的方式,任意一种,再去/etc/my.cof文件中删除刚才的命令,保存退出,重启一次mysql服务器

  1. [root@master ~]# systemctl start mysqld #启动MySQL服务器
  2. [root@master ~]# systemctl restart mysqld #重启MySQL服务器
2)windows系统

第一步、停止MySQL服务器

net stop MySQL

第二步、在输入mysqld --skip-grant-table

 

再次登录mysql就不用输入密码了 ,然后登录成功用上面的任意一种方法修改用户的密码。

四、用户权限

1、授予权限

基本语法

  1. grant 权限列表 on 库名.表名 to 用户名@'客户端主机'
  2. [identified by '密码' with option参数];

权限列表:可以根据需求给该用户什么权限

option参数:

GRANT OPTION: 授权选项

MAX_QUERIES_PER_HOUR: 定义每小时允许执行的查询数

MAX_UPDATES_PER_HOUR: 定义每小时允许执行的更新数

MAX_CONNECTIONS_PER_HOUR: 定义每小时可以建立的连接数

MAX_USER_CONNECTIONS: 定义单个用户同时可以建立的连接数

eg:该语句是给用户test_user权限在test库中所有表select、insert、update权限。

  1. mysql> grant select,insert,update on test.* to test_user@'localhost';
  2. Query OK, 0 rows affected (0.00 sec)

eg: 该语句是给用户所有库中的所有表,授予全部权限,几乎给ROOT权限一样了。

grant all on *.* to 用户名@localhost; 

注:* 号代表所有。 

eg:给用户指定库中指定的字段执行select权限

grant select(字段名) on 库名.表名 to 用户名@主机名;

2、查看权限

  1. #1、查看当前用户(自己)权限
  2. show grants;
  3. #ROOT查看指定用户权限
  4. show grants for dba@localhost;
  5. #ROOT查看用户的全部权限
  6. grant all on *.* to dba@localhost;

 eg:查看刚才给test_user用户授予的权限

  1. mysql> show grants for test_user@'localhost';
  2. +---------------------------------------------------------------------+
  3. | Grants for test_user@localhost |
  4. +---------------------------------------------------------------------+
  5. | GRANT USAGE ON *.* TO 'test_user'@'localhost' |
  6. | GRANT SELECT, INSERT, UPDATE ON `test`.* TO 'test_user'@'localhost' |
  7. +---------------------------------------------------------------------+
  8. 2 rows in set (0.00 sec)

3、撤销权限

基本语法

revoke 权限列表 on 库名.表名 from 用户名@主机名;

eg:

先查看该用户的权限有SELECT、INSERT、UPDATE。

 执行撤销INSERT、UPDATE权限

  1. mysql> revoke insert,update on test.* from test_user@'localhost';
  2. Query OK, 0 rows affected (0.00 sec)

查看撤销后的权限只有SELECT。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/717606
推荐阅读
相关标签
  

闽ICP备14008679号