总结分享MySQL中的用户创建与权限管理
MySQL是一个广泛使用的关系型数据库管理系统,为了保证数据安全,MySQL中对用户创建和权限管理有严格的规定。在MySQL中,用户创建和权限管理都需要通过命令进行操作。
一、用户创建
MySQL中,用户的创建需要用到create user命令,基本语法如下:
mysql> create user '用户名'@'被允许连接的主机名称或主机的IP地址' identified by '用户密码';
举例来说,创建一个MySQL账号,用户名为'hhy',用户密码为'123',可以使用以下命令:
mysql> create user 'hhy'@'localhost' identified by '123';
另外,如果需要在远程主机上连接MySQL,需要在用户创建时指定要授权的远程主机的IP地址,例如:
mysql> create user 'test'@'192.1668.44.110' identified by '123';
当需要面向某个主机IP地址的网段进行开放时,可以使用通配符%,例如:
mysql> create user 'jack'@'192.168.44.%' identified by '123';
二、权限管理
为了保证数据安全,MySQL对权限管理有严格的规定,授权和回收权限都需要通过命令进行操作。
1.权限说明
MySQL中定义了很多种不同的权限,通过分配不同的权限,可以实现不同用户之间数据的保密性和互操作性。常见的权限包括:
USAGE:无权限,只能登录MySQL,只可以使用test或test_*数据库;
ALL:所有权限;
select/update/delete/super/replication slave/reload...:针对具体的操作;
with grant option选项:允许把自己的权限授予其它用户或者从其他用户收回自己的权限。
2.权限保存位置
所有mysql用户的账号和密码,以及用户对全库全表权限(*.*)都保存在mysql.user表中;非mysql库的授权都保存在mysql.db表中;某库某表的授权保存在mysql.table_priv表中;某库某表某列的授权保存在mysql.columns_prv表中;某库存储过程的授权保存在mysql.procs_priv表中。
3.给用户授权
为用户分配权限的语法如下:
mysql> grant 权限1,权限2 on 库.表 to 用户@主机;
例如,为hehanyu用户分配java数据库的查询权限,可以使用以下命令:
mysql> grant select on java.* to 'hehanyu'@'192.168.44.%';
还可以为用户分配更具体的权限,例如,为hehanyu用户分配java.tb_student数据表的更新权限(只能更改age字段),使用以下命令:
mysql> grant update(age) on java.tb_student to 'hehanyu'@'192.168.44.%';
4.查询用户权限
查询当前用户的权限,可以使用以下命令:
mysql> show grants;
查询其他用户权限的语法为:
mysql> show grants for '用户名'@'授权的主机名称或IP地址';
5.with grant option选项
当需要对下级用户进行授权时,可以使用with grant option选项,例如:
mysql> grant all on *.* to 'amy'@'10.1.1.%' identified by '123' with grant option;
如果没有使用with grant option选项,则该用户无法为其他用户授权。
6.revoke回收权限
如果需要回收某个用户的权限,可以使用revoke命令。如果需要回收指定的权限,语法如下:
mysql> revoke 权限 on 库.表 from 用户;
如果需要撤消所有的权限,可以使用以下命令:
mysql> revoke all on *.* from '用户名'@'授权的主机名称或IP地址';
通过权限管理,在多用户的系统中保证了数据的隔离性和安全性,也保证了系统的稳定性。

-
MySQL Workbench怎么建立数据库(附:sql语句创建数据库方法) 2023-07-20 12:22:29
-
MySQL Workbench是什么?(附:如何设置中文教程) 2023-07-20 11:42:31
-
mysql修改表结构的语句是什么 2023-05-14 07:00:03
-
mysql怎么将查询结果赋给变量 2023-05-14 07:00:03
-
qt5.8如何连接mysql 2023-05-14 07:00:03
-
MySQL 语法整理介绍 2023-05-14 07:00:03
-
mysql驱动是什么 2023-05-14 07:00:03
-
一起聊聊MySQL主从延时的处理方案 2023-05-14 07:00:03
-
mysql乐观锁和悲观锁的区别是什么 2023-05-14 07:00:03
-
mysql怎么查询临时表 2023-05-14 07:00:02