MySQL-权限管理(二)

一 host中的含义

cpp 复制代码
/usr/local/mysql/bin/mysql -p'LXYlxy2:024.#8u}' -S /data/mysql/tmp/mysqld.sock
select user,host,authentication_string from mysql.user;
  • %:主要允许从任何主机连接到MySQL服务器,即外部连接
  • localhost: 代表只允许本地主机连接到MySQL服务器,即本地连接。(本地主机就是MySQL服务器所在的本地主机,就是运行MySQL服务的主机)
  • 127.0.0.1:使用TCP/IP的方式进行网络通信,也属于本地连接。(与localhost的区别是,localhoast是可以使用套接字socket进行连接)

上下两张图,可以看出127.0.0.1和localhost区别,localhost可以使用套接字连接,127.0.0.1必须要配合-h -P连接,且可以不带套接字连接

二 修改root用户的host

Mysql8.0,使用root用户修改root的host,使用grant语法会一直报错,只能使用update语法修改

cpp 复制代码
SELECT user, host FROM mysql.user WHERE user='root';
UPDATE mysql.user SET host='new_host' WHERE user='root' AND host='current_host';

TIPS:mysql8.0每个host对应的用户都算新用户,(理解不一定正确)需要重新创建该字段的用户再授权,使用下三中文档创建

三 创建远程用户&远程用户白名单

https://www.cnblogs.com/dongxt/p/14883465.html

cpp 复制代码
##lxy@'10.0.0.10'  lxy只能在10.0.0.10这个客户端登录
create user lxy@'10.0.0.10' identified by '123123';

四 修改密码

root用户修改普通用户密码:

cpp 复制代码
mysql> ALTER USER  www@'127.0.0.1'   IDENTIFIED BY 'www666';
Query OK, 0 rows affected (0.00 sec)

mysql> select user();
+----------------+
| user()         |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)

普通用户修改自己的密码:在有权限的情况下,直接使用alter修改,set password好像不可以

cpp 复制代码
/usr/local/mysql/bin/mysql -p'www666' -uwww -h127.0.0.1  -P3307


mysql> set password=password('aaa666');
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'password('aaa666')' at line 1

mysql> ALTER USER 'www'@'127.0.0.1' IDENTIFIED BY 'aaa666';
Query OK, 0 rows affected (0.02 sec)

五 删除用户

一个用户有两个网段权限,不可以直接drop username;

六 授权规则语法&授权/回收权限

grant all privileges on *.* to lxy@'%' with grant option;

授权 权限 库.表 用户@网段报名单

cpp 复制代码
##创建一个ceshi用户,给予增删改查权限
mysql> create user ceshi@'%' identified by '123123';
Query OK, 0 rows affected (0.03 sec)

mysql> grant SELECT,UPDATE,DELETE,INSERT on *.* to ceshi@'%' with grant option;
Query OK, 0 rows affected (0.01 sec)

mysql> select user,host from mysql.user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| bbb              | %         |
| beifen           | %         |
| ceshi            | %         |
| slave1           | %         |
| www              | 127.0.0.1 |
| lxy              | localhost |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
| www              | localhost |
+------------------+-----------+
11 rows in set (0.00 sec)

#查询权限语句

mysql> show grants for ceshi@'%';
+------------------------------------------------------------------------------+
| Grants for ceshi@%                                                           |
+------------------------------------------------------------------------------+
| GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO `ceshi`@`%` WITH GRANT OPTION |
+------------------------------------------------------------------------------+
1 row in set (0.00 sec)

#回收delete权限

mysql> REVOKE DELETE ON *.* from ceshi@'%'  ;
Query OK, 0 rows affected (0.09 sec)

mysql> show grants for ceshi@'%';
+----------------------------------------------------------------------+
| Grants for ceshi@%                                                   |
+----------------------------------------------------------------------+
| GRANT SELECT, INSERT, UPDATE ON *.* TO `ceshi`@`%` WITH GRANT OPTION |
+----------------------------------------------------------------------+
1 row in set (0.00 sec)

七 root用户忘记怎么办

cpp 复制代码
#配置文件加参数,跳过授权表
[mysqld]
skip-grant-tables

然后进去改密码,改完后,记得把配置文件改回来!

相关推荐
普通网友1 分钟前
Python FastAPI 异步数据库管理
数据库·fastapi
晓子文集18 分钟前
Tushare接口文档:期货合约信息表(fut_basic)
大数据·数据库·金融·金融数据·量化投资
三言老师1 小时前
CentOS7.9:Redis‑Cluster集群部署结构化实战教程
linux·运维·服务器·数据库
旺仔学长 哈哈1 小时前
Spring Boot 智能停车场管理系统---附源码+数据库文档
数据库·spring boot·后端·智能停车场
ClickHouseDB2 小时前
ClickHouse托管Postgres:OLTP+OLAP,新能力解锁最佳数据平台
java·前端·数据库
数智化管理手记2 小时前
主数据重复、错漏频发?一站式主数据管理平台如何落地?
大数据·运维·数据库·人工智能·数据挖掘
吴声子夜歌2 小时前
MongoDB 4.2——选择片键
数据库·mongodb
天天进步一点点3 小时前
QSqlQuery删除sqlite数据库执行drop数据表报错database table is locked unable to fetch row问题
数据库·oracle·sqlite
音视频工程实战3 小时前
PromptQL 新手入门与实战指南
数据库·sql·算法
清川渡水3 小时前
NL2SQL 的正确打开方式:从「AI 猜 SQL」到「置信度闭环」的工程化落地
数据库·人工智能·sql