目录
MySQL用户权限管理
MySQL用户管理
MySQL中的用户不是只看用户名
## 优化MySQL用户
mysql> truncate mysql.user;
MySQL的用户组成:
- 用户名
- 主机域
## 主机域书写
172.16.1.%
172.16.%.%
172.%.%.%
%
172.16.1.0/255.255.255.0
172.16.1.50-59 172.16.1.5
## 创建用户
mysql> create user oldboy@'10.0.0.%' identified by '123';
## 查询用户
mysql> select user,host from mysql.user;
## 删除用户
mysql> drop user ''@'localhost';
Query OK, 0 rows affected (0.00 sec)
MySQL用户管理:
1)创建用户:create user
2)删除用户:delete user drop user
3)修改用户:update
# 创建用户
mysql> create user oldboy@'10.0.0.%' identified by '123';
# 查看用户
mysql> select user,host from mysql.user;
# 删除用户
mysql> drop user oldboy@'10.0.0.%';
# 修改密码
mysql> set password
mysql> update user set password=PASSWORD('oldboy123') where user='root' and host='localhost';
mysql> grant all privileges on *.* to oldboy@’10.0.0.%’ identified by ‘123’;
-------------------------------------
set password;:这是一个交互式命令,它会提示你输入新的密码,并将其设置为当前用户的密码。但是在你提供的信息中,缺少了实际的新密码。
update user set password=PASSWORD('oldboy123') where user='root' and host='localhost';:这条命令将更新 MySQL 用户表中 root 用户的密码为 "oldboy123",只有在用户名为 root,且主机名为 localhost 才会进行更新。请注意,这个命令改变了 root 用户的密码,避免在生产环境中使用弱密码。
grant all privileges on *.* to oldboy@’10.0.0.%’ identified by ‘123’;:这条命令授予用户 oldboy 在所有数据库上的所有权限,并设置密码为 "123"。用户可以从以 10.0.0. 开头的 IP 地址连接到 MySQL 服务器。请注意,如果你要在实际环境中使用,请根据实际需求和安全性考虑来定义权限和密码。
MySQL用户密码管理
###### MySQL5.6-------------
[root@db02 ~]# mysqladmin -uroot -p password '789'
## 修改当前登录的用户
mysql> set password=PASSWORD('111');
## update修改密码(配合刷新授权表
mysql> update mysql.user set password=PASSWORD('222') where user='root' and host='localhost';
mysql> flush privileges; //(只有在修改密码时,才需要用到)
## 修改密码
mysql> grant all on *.* to root@'localhost' identified by '123';
###### MySQL5.7-------------
mysql> alter user root@'localhost' identified by '123';
## 修改当前登录的用户
mysql> set password=PASSWORD('111');
## update修改密码(配合刷新授权表)
mysql> update mysql.user set authentication_string=PASSWORD('222') where user='root' and host='localhost';
mysql> flush privileges; //(只有在修改密码时,才需要用到)
## 修改密码
mysql> grant all on *.* to root@'localhost' identified by '123';
[root@db02 ~]# mysqladmin -uroot -p password '789'
误删除root用户 忘记root密码
## 优化MySQL用户
mysql> truncate mysql.user;
# 停止数据库
/etc/init.d/mysqld stop
# 跳过授权表和网络连接
mysqld_safe --skip-grant-tables --skip-networking &
# 刷新授权表
flush privileges;
# 创建最大权限用户,名字root,密码123,
grant all on *.* to root@'localhost' identified by '123' with grant option;
# 需要启动授权表更改,登录的这个用户的密码
set password=PASSWORD('111');
# 登陆后不需要原始密码也可以更改密码,(无需授权表更改)
update mysql.user set authentication_string=PASSWORD('222') where user='root' and host='localhost';
更新 库.表 设置 字段=加密后密码 条件 用户名 地址
真正的root权限
# 4.创建root用户,授权
mysql> grant all on *.* to root@'localhost' identified by '123' with grant option;
误删除了所有用户
#关闭数据库
[root@db02 mysql-5.7.20]# /etc/init.d/mysqld stop
#启动数据库
[root@db02 mysql-5.7.20]# mysqld_safe --skip-grant-tables --skip-networking
#使用mysql库
mysql> use mysql
#错误方法1、创建root用户
mysql> create user root@’localhost’;
#错误方法2、创建root用户
mysql> insert into user(user,host,password) values('root','10.0.0.55',PASSWORD('123'));
#正确方法创建root用户
mysql> insert into mysql.user values ('localhost','root',PASSWORD('123'),
'Y',
'Y',
'Y',
'Y',
'Y',
'Y',
'Y',
'Y',
'Y',
'Y',
'Y',
'Y',
'Y',
'Y',
'Y',
'Y',
'Y',
'Y',
'Y',
'Y',
'Y',
'Y',
'Y',
'Y',
'Y',
'Y',
'Y',
'Y',
'Y',
'’'
'’'
'’'
'’'0,0,0,0,'mysql_native_password','','N');
MySQL权限管理
grant all on *.* to user@'%' identified by '123';
所有权限 库.表 用户@主机域 密码
## 给开发开权限:
grant select,update,insert on lol.* to dev@'10.0.0.%' identified by '复杂一点';
grant select,update,insert,delete on lol.* to dev@'10.0.0.%' identified by '复杂一点';
lol.*:单库级别
lol.user:单表级别
## 脱敏:脱离敏感信息
mysql> grant select(user,host),update,insert on mysql.user to dev1@'localhost' identified by '123';
INSERT,SELECT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE,REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES,EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE
ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE
INSERT:允许用户向表中插入新的数据。
SELECT:允许用户从表中查询(检索)数据。
UPDATE:允许用户更新表中的数据。
DELETE:允许用户删除表中的数据。
CREATE:允许用户创建新的数据库、表或其他对象。
DROP:允许用户删除数据库、表或其他对象。
RELOAD:允许用户重新加载服务器配置或刷新缓存。
SHUTDOWN:允许用户关闭数据库服务器。
PROCESS:允许用户查看正在运行的进程。
FILE:允许用户读写文件。
REFERENCES:允许用户创建或删除外键约束。
INDEX:允许用户创建或删除索引。
ALTER:允许用户修改现有的数据库、表或其他对象。
SHOW DATABASES:允许用户查看所有数据库的列表。
SUPER:允许用户执行敏感操作,如更改全局变量或关闭任何线程。
CREATE TEMPORARY TABLES:允许用户创建临时表。
LOCK TABLES:允许用户锁定表,以防止其他用户对表进行更改。
EXECUTE:允许用户执行存储过程或函数。
REPLICATION SLAVE:允许用户作为复制从属服务器。
REPLICATION CLIENT:允许用户查询复制相关的信息。
CREATE VIEW:允许用户创建视图。
SHOW VIEW:允许用户查看视图的定义。
CREATE ROUTINE:允许用户创建存储过程或函数。
ALTER ROUTINE:允许用户修改存储过程或函数。
CREATE USER:允许用户创建新用户账户。
EVENT:允许用户创建或删除事件调度。
TRIGGER:允许用户创建或删除触发器。
CREATE TABLESPACE:允许用户创建表空间
企业中权限设置
走流程:OA
select,update,insert,delete
哪个库,表?
用户名
密码
标签:MySQL,用户,密码,user,mysql,权限,root
From: https://www.cnblogs.com/xiutai/p/17749277.html