当前位置: 首页 > article >正文

MySQL用户授权

什么是数据库

  • 数据库概述:数据库是按照一定的数据结构将数据存储在存储器的集合
  • 常见数据库软件
软件名开源跨平台厂 商
Oracle甲骨文
MySQL甲骨文
SQL Server微软
DB2IBM
MongoDBMongoDB Inc.
Redis开源软件
Memcached开源软件
  • DB (DataBase)
    • 数据库
    • 依照某种数据模型进行组织并存放到存储器的数据集合
  • DBMS (DataBase Management System)
    • 数据库管理系统
    • 用来操纵和管理数据库的服务软件
  • DBS (DataBase System)
    • 数据库系统:即 DB+DBMS
    • 指带有数据库并整合了数据库管理软件的计算机系统

MySQL介绍

  • MySQL是一个开源的关系型数据库管理系统(RDBMS),由瑞典公司 MySQL AB 开发,后被 Sun Microsystems 收购,并最终被 Oracle Corporation 收购。MySQL 因其高性能、易用性、可扩展性和稳定性而广受欢迎,并被广泛应用于各种规模的应用程序中,从个人项目到大型企业级应用。

  • 主要特点

    • 适用于中小规模、关系型数据库系统
    • 支持Linux、Unix、Windows等多种操作系统
    • 支持Python、Java、Perl、PHP等编程语言
    • LAMP平台,与Apache HTTP Server组合
    • LNMP平台,与Nginx组合

安装MySQL

mysql主机操作

[root@mysql ~]# dnf -y install mysql-server mysql
[root@mysql ~]# systemctl   start    mysqld     		#启动服务
[root@mysql ~]# systemctl   enable   mysqld    			#将服务设置为开机自启
[root@mysql ~]# ss  -utnlp  |  grep  :3306  			#查看服务信息
[root@mysql ~]#mysqladmin -uroot  password '123qqq...A'	#修改mysql的root用户的密码

软件相关的目录与文件等

文件说明
主配置文件/etc/my.cnf.d/mysql-server.cnf
数据库目录/var/lib/mysql
端口号3306
进程名mysqld
传输协议TCP
进程所有者mysql
进程所属组mysql
错误日志文件/var/log/mysql/mysqld.log

用户授权

  • 创建用户
    • CREATE USER 用户名@‘主机’ IDENTIFIED BY ‘密码’;
  • 授权
    • GRANT 权限列表 ON 库名.表名 TO 用户名@‘主机’;
mysql> CREATE USER root@'%' IDENTIFIED BY '123qqq...A';		#创建root@'%'用户
mysql> GRANT ALL ON *.* to root@'%' WITH GRANT OPTION;		#授予所有权限
mysql> FLUSH PRIVILEGES;									#刷新授权表

使用SQLyog连接MySQL

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

创建库tedugame(SQLyog中执行)

CREATE DATABASE tedugame;					#创建tedugame库
SHOW TABLES FROM tedugame;					#查看tedugame库中有哪些表格

创建tedugame.submarine表

  • 包含字段
    • id字段:INT类型
    • name字段:CHAR()类型,10个宽度
    • level字段:INT类型
    • zone字段:VARCHAR类型,50个宽度
CREATE TABLE tedugame.submarine(
id INT,
NAME CHAR(10),
LEVEL INT,
zone VARCHAR(50)
);
SELECT * FROM  tedugame.submarine;				#查询表中数据为空

写入数据

INSERT INTO tedugame.submarine VALUES
(1,"mark",1,"Beijing"),
(2,"sam",2,"Shanghai"),
(3,"PaoPao",2,"Shanghai"),
(4,"Lucy",3,"Chengdu");
SELECT * FROM  tedugame.submarine;				#查询表中数据为空

创建表tedugame.ylgy

  • 包含字段
    • id字段:INT类型
    • name字段:CHAR()类型,10个宽度
    • goldcoin:INT类型
CREATE TABLE tedugame.ylgy(
id INT,
NAME CHAR(10),
goldcoin INT
);
SHOW TABLES FROM tedugame;

写入数据

INSERT INTO tedugame.ylgy VALUES 
(1,"jack",10000),
(2,"sam",10540),
(3,"lucy",88888),
(4,"mark",66666);
SELECT * FROM tedugame.ylgy;					#查询数据

授权用户

  • 授权用户tom,能够对tedugame库里的所有表拥有所有权限
  • 允许tom用户在网络中所有主机登录(%)
  • tom用户的密码为:123qqq…A
CREATE USER tom@'%' IDENTIFIED BY '123qqq...A';			#创建用户及密码
GRANT ALL PRIVILEGES ON tedugame.* TO 'tom'@'%';  		#授权tom用户
FLUSH PRIVILEGES;										#刷新权限列表

测试验证

  • SQLyog工具新建连接,使用tom用户登录验证

在这里插入图片描述

在这里插入图片描述

SHOW DATABASES;										#查看所有库

#只能看到information_schema库,此库占用内存,无需授权
#还能看到tedugame库
SELECT * FROM tedugame.submarine;				#查询tedugame.submarine表数据
SELECT * FROM tedugame.ylgy;					#查询tedugame.ylgy表数据

向tedugame.submarine表写入数据

INSERT INTO tedugame.submarine VALUES (5,'tom',2,'Beijing');

修改tedugame.submarine表中的数据,name为tom的用户zone字段改为’Shanghai’

UPDATE tedugame.submarine SET zone='Shanghai' WHERE NAME='tom';

删除名字为tom的整行

DELETE FROM tedugame.submarine WHERE NAME='tom';
SELECT * FROM tedugame.submarine;					#查看tedugame.submarine数据

授权用户

  • 授权用户wwc,能够对tedugame.submarine拥有查询(SELECT)和写入(INSERT)权限
  • 允许wwc用户在网络中所有主机登录(%)
  • wwc用户的密码为:123qqq…A

使用root@'%'连接数据库

CREATE USER wwc@'%' IDENTIFIED BY '123qqq...A';				#创建用户
GRANT SELECT,INSERT ON tedugame.submarine to wwc@'%';		#授权
FLUSH PRIVILEGES;											#刷新授权表
SHOW GRANTS FOR wwc@'%';									#查看授权

验证权限,使用wwc@'%'连接数据库

在这里插入图片描述

SHOW TABLES FROM tedugame;								#查看表
SELECT * FROM tedugame.submarine;						#验证查询表记录权限,成功
INSERT INTO tedugame.submarine VALUES(6,'wwc',6,'Beijing');	#验证写入表记录权限,成功
DELETE FROM tedugame.sunbmarine							#验证删除表记录权限,失败

撤销权限

  • REVOKE 权限列表E ON 库名.表名 FROM 用户@‘主机’;

root@'%‘用户操作,撤销wwc@’%'用户对tedgame.subarine表的插入(INSERT)权限

REVOKE INSERT ON tedugame.submarine FROM wwc@'%';

测试验证

使用wwc@'%'连接数据库

INSERT INTO tedugame.submarine VALUES(7,'dcc',6,Shanghai');		#验证写入表记录权限,失败

http://www.kler.cn/a/450715.html

相关文章:

  • 模型的多GPU并行训练,DDP
  • Windows 11 安装 Dify 完整指南 非docker环境
  • # 起步专用 - 哔哩哔哩全模块超还原设计!(内含接口文档、数据库设计)
  • MyBatis通过注解配置执行SQL语句原理源码分析
  • ubuntu22.04安装PaddleX3
  • sh cmake-linux.sh -- --skip-license --prefix = $MY_INSTALL_DIR
  • Mysql大数据量表分页查询性能优化
  • 【从零开始入门unity游戏开发之——unity篇01】unity6基础入门开篇——游戏引擎是什么、主流的游戏引擎、为什么选择Unity
  • Pytorch | 利用BIM/I-FGSM针对CIFAR10上的ResNet分类器进行对抗攻击
  • SharpDX 从入门到精通:全面学习指南
  • 【人工智能】Python中的机器学习管道:如何用scikit-learn构建高效的ML管道
  • 【23种设计模式·全精解析 | 行为型模式篇】11种行为型模式的结构概述、案例实现、优缺点、扩展对比、使用场景、源码解析
  • 学生资助管理系统:提升资助决策的数据支持
  • 实力认可 | 通付盾入选《ISC.AI 2024创新能力全景图谱》五项领域
  • 拓展AI超级智能后的人类生活场景
  • 深入探究 Java 中的 setText
  • 【python高级】342-TCP服务器开发流程
  • Java日志框架:log4j、log4j2、logback
  • 香港服务器网站被攻击了怎么办?
  • 安宝特应用 | 美国OSHA扩展Vuzix AR眼镜应用,强化劳动安全与效率
  • 股票行情分析api接口怎么用?
  • 【Maven】Maven的classpath
  • 中国量子计算机领域的发展现状与展望
  • 【基础篇】1. JasperSoft Studio编辑器与报表属性介绍
  • VMware下Net网络的配置
  • java数组常用操作(其三)