一、用户授权
- 给数据库添加新的用户并且设置权限
- 命令格式
mysql> grant 权限列表 on 库名 to 用户名@"客户端地址"
-> identified by "密码" //授权用户面膜
-> with grant option ; //有授权权限可选项
- 权限列表
-
-
all //所有权限
-
usage //无权限
-
select,update,insert //个别权限
-
select,update(字段1,…,字段N) //指定字段
-
- 库名
-
-
*. * //所有库所有表
-
库名 .* //一个库
-
库名.表名 //一张表
-
- 用户名
-
-
授权时自定义 要有标识性
-
存储在mysql库的user表里
-
- 客户端地址
-
-
% //所有主机
-
192.168.4.% //网段内的所有主机
-
192.168.4.1 //一台主机
-
localhost //数据库服务器本机
-
- 示例
授权例子 192.168.4.50
[root@db1 ~]# mysql -uroot -p123456
mysql> grant all on *.* to mydba@"%" identified by "123qqq...A" with grant option ;
//给用户mydba配置所有主机都能登录的权限为all
[root@db2 ~]# mysql -h192.168.4.50 -umydba -p123qqq...A
1.2、相关命令
命令 | 作用 |
---|---|
select user( ); | 显示登录用户名及客户端地址 |
show grants; | 用户显示自身访问权限 |
show grants for 用户名@“客户端地址”; | 管理员查看已有授权用户权限 |
set password=password(“密码”); | 授权用户连接后修改连接密码 |
set password for 用户名@“客户端地址”=password(“密码”); | 管理员重置授权用户连接密码 |
1.3、授权库
- mysql库 记录授权信息,主要表如下
-
-
记录已有授权用户对字段的访问权限
-
记录已有授权用户对表的访问权限
-
记录已有授权用户对数据库的访问权限
-
记录已有的授权用户及权限
-
user表
-
db表
-
tables_priv表
-
columns_priv表
-
1.4、撤销权限
- 命令格式
mysql> revoke 权限列表 on 库名.表 from 用户名@"客户端地址";
二、root密码管理
2.1、修改root密码
[root@db1 ~]# mysqladmin -hlocalhost -uroot -p123456 password "654321"
[root@db1 ~]# mysql -uroot -p654321.
2.2、恢复root密码
2.2.1、停止MySQL服务程序
[root@db1 ~]# systemctl stop mysqld
2.2.2、跳过授权表启动MySQL服务
- 首先将配置文件中非默认的配置注释掉
[root@db1 ~]# vim /etc/my.cnf
[mysqld]
skip-grant-tables
[root@db1 ~]# systemctl start mysqld
2.2.3、修改root密码
[root@db1 ~]# mysql
mysql> update mysql.user set authentication_string=password("123qqq...A")
-> where host="localhost" and user="root" ;
mysql> flush privileges ;
mysql> exit
[root@db1 ~]# vim /etc/my.cnf
[mysqld]
#skip-grant-tables
2.2.4、以正常方式重启MySQL服务
[root@db1 ~]# systemctl restart mysqld
[root@db1 ~]# mysqladmin -hlocalhost -uroot -p123qqq...A password "123456"
评论(0)
您还未登录,请登录后发表或查看评论