MySQL 用户及权限管理

1.mysql用户的定义

在mysql中,用户由用户名主机域组成的。

1.1 用户名的写法

mysql> create user test1@'localhost';

注意:用户名不要以数字、符号开头,如若一定要这么写,给用户名加上引号才能创建用户。

1.2 用户中的主机域的写法

  • 单个主机地址写法
127.0.0.1
::1
localhost
db01
  • 范围型主机地址写法
172.16.1.%
172.16.%.%
172.%.%.%
%
172.16.1.5%
172.16.1.0/255.255.255.0

其中%代表所有,如172.16.1.%即代表172.16.1.0~172.16.1.255这个范围内的所有地址

2.用户管理

2.1 创建用户

mysql> CREATE USER test2@'localhost' IDENTIFIED BY '123';
Query OK, 0 rows affected (0.00 sec)

2.2 查看数据库中得所有用户

mysql> SELECT User,Host,Password FROM mysql.user;

2.3 删除创建的用户

mysql> DROP USER test2@'localhost';

2.4 修改用户密码

  • 使用update命令修改密码
mysql> UPDATE mysql.user SET Password=PASSWORD('123') WHERE User='root' AND Host='localhost';
  • 使用grant授权修改密码
mysql> GRANT ALL PRIVILEGES ON *.* TO root@'localhost' IDENTIFIED BY '123';
  • 使用mysqladmin修改密码
#密码明文修改
mysqladmin -uroot -p123 password '456'

#不让密码显示出来
mysqladmin -uroot -p password
  • 修改当前登录数据的用户密码
mysql> SET Password=PASSWORD('123');

3.用户权限管理

在mysql数据库中,给用户授权都是通过grant命令来操作的

  • 授权所有库、所有表
GRANT ALL PRIVILEGES ON *.* TO test03@'172.16.1.%' IDENTIFIED BY '123'; 
  • 单库授权
GRANT ALL PRIVILEGES ON mysql.* TO test03@'172.16.1.%' IDENTIFIED BY '123'; 
  • 单表授权
GRANT ALL PRIVILEGES ON mysql.user TO test03@'172.16.1.%' IDENTIFIED BY '123'; 
  • 单列授权,在企业中也称为脱敏(脱离敏感信息)
GRANT SELECT(User,Host) ON mysql.user TO test03@'172.16.1.%' IDENTIFIED BY '123'; 
点赞

发表回复