1. 数据库逻辑结构

何为逻辑结构?

登录数据库后,通过执行SQL命令看到的对象,就是逻辑结构

2. 数据库物理结构

为么要研究数据库的物理结构?

因为数据库的逻辑结构(库、表)最终还是要落到磁盘上,那么这些逻辑结构是如何进行存储的呢?这就是研究数据库物理结构的意义所在了。

MySQL中的库,与库里面的表,都是存在于操作系统的目录中的,“库”以目录的形式展现,“表”以文件的方式展现。

2.1 宏观方面(直接看到的文件)

库:

表:MyISAM引擎(存储引擎)

[root@db01 /data/mysql/data/mysql]# ll user*

-rw-r----- 1 mysql mysql 10816 Jun 13 14:25 user.frm #<==列的相关信息(列的属性\元数据)

-rw-r----- 1 mysql mysql 396 Jun 13 16:00 user.MYD #<==数据行

-rw-r----- 1 mysql mysql 4096 Jun 13 16:00 user.MYI #<==索引信息(书的目录)

表:InnoDB引擎(存储引擎,有日志功能)

[root@db01 /data/mysql/data/mysql]# ll time_zone*

-rw-r----- 1 mysql mysql 8636 Jun 13 14:25 time_zone.frm #<==列的定义信息

-rw-r----- 1 mysql mysql 98304 Jun 13 14:25 time_zone.ibd #<==数据行和索引

2.2 微观(看不到的)

段(表),区(M),页(Page)(面试重点)

一个表就是一个段,Mysql分配空间时,至少分配一个区(视存放数据的大小而定)每个区默认是1M(64个page),MySQL最小的IO单元是PAGE(16k)

3. 基础管理

3.1 用户管理

3.1.1 用户的作用

登录数据库

管理数据库对象

3.1.2 用户的定义

用户名@'白名单'

何为白名单?

白名单就是允许用户登录的范围,如下所示:

oldguo@'10.0.0.51' #<==只允许oldguo用户从10.0.0.51这台服务器上登录数据库

oldguo@'10.0.0.%' #<==只允许oldguo用户从10.0.0网段(1-254)的所有服务器上登录数据库

oldguo@'10.0.0.5%' #<==只允许oldguo用户从10.0.0网段的50-59这个范围登录数据库

oldguo@'10.0.0.0/255.255.254.0' #<==只允许oldguo用户从10.0.0网段的1-254和10.0.1网段的1-254这个范围登录数据库

oldguo@'%' #<==允许oldguo用户从任何IP地址都可以登录数据库

oldguo@'localhost' #<==只允许oldguo用户从本地登录到数据库

oldguo@'db01' #<==只允许oldguo用户通过db01这个主机名登录到数据库

常用的白名单配置方式如下:

oldguo@'10.0.0.%'

oldguo@'10.0.0.5%'

oldguo@'10.0.0.0/255.255.254.0'

oldguo@'localhost'

3.1.3 用户管理

创建用户

mysql中默认的用户:root、mysql.sys、mysql.session

3306 [(none)]>create user oldboy@'10.0.0.%' identified by '123';

Query OK, 0 rows affected (0.00 sec)

查看列的属性

3306 [(none)]>desc mysql.user;

image.png

查询用户、主机、密码详细属性

06 [(none)]>select user,host ,authentication_string from mysql.user;

删除用户

3306 [(none)]>drop user oldguo@'10.0.0.%';

Query OK, 0 rows affected (0.12 sec)

3306 [(none)]>select user,host,authentication_string from mysql.user;

+---------------+------------+-------------------------------------------+

| user | host | authentication_string |

+---------------+------------+-------------------------------------------+

| root | localhost | *E6CC90B878B948C35E92B003C792C46C58C4AF40 |

| mysql.session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |

| mysql.sys | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |

| oldboy | 10.0.0.% | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |

| oldboy | 172.16.1.% | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |

+---------------+------------+-------------------------------------------+

5 rows in set (0.00 sec)

修改用户

3306 [(none)]>alter user root@'localhost' identified by '123'; #<==修改用户密码

Query OK, 0 rows affected (0.00 sec)

3.2 权限管理

3.2.1 权限的作用

控制用户登录后,能对MySQL数据库对象执行哪些命令。

3.2.2 权限的定义

MySQL的权限定义就是针对SQL语句,如下:

ALL:

SELECT,INSERT, 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

ALL : 以上所有权限,一般是普通管理员拥有的

with grant option:超级管理员才具备的,给别的用户授权的功能

8.0 版本新特性(了解)

加入了role(角色)的概念

3.2.3 授权管理

grant ALL on wordpress.* to wordpress@'10.0.0.%' identified by '123';

grayn 授权 on 范围 to 用户 identified by '密码';

grant select,updata,insert,delete on 范围 to 用户 identified by '123';

范围:

*.* #<==所有库下面的所有表

wordpress.*(推荐使用)#<==wordpress库里面的所有表

wordpress.t1 #<==wordpress库里面的t1表

练习1:从windows中的navicat软件使用root用户管理MySQL数据库

3306 [(none)]>grant all on *.* to root@'10.0.0.%' identified by '123';

Query OK, 0 rows affected, 1 warning (0.00 sec

练习2:创建zhihu业务用户能够对zhihu业务库进行业务操作

3306 [(none)]>grant select,update,delete,insert on zhihu.* to zhihu@'10.0.0.%' identified by '123';

Query OK, 0 rows affected, 1 warning (0.00 sec)

3306 [(none)]>flush privileges;

Query OK, 0 rows affected (0.00 se

mysql .myi权限_Day02-a.m.-MySQL体系结构与用户权限管理相关推荐

  1. mysql建库需要权限吗_mysql 建库报匿名用户权限错误

    ERROR 1044 (42000): Access denied for user [email protected] to database 'meitu' 系统环境: Centos 7.5 My ...

  2. mysql重装时没有权限_MySQL系列--1.安装卸载与用户权限管理

    MySQL安装 1.Ubuntu18下安装MySQL sudo apt-get install mysql-server MySQL的版本为5.7.25 2.登录MySQL 采用mysql-serve ...

  3. 修改oracle用户权限,详解如何实现Oracle修改用户权限和角色

    ------今天看了这篇文章 觉得对我们学习oracle 还是有很多帮助的,大家可以试着读读······· 这里将介绍Oracle修改用户权限的实现过程,包括一些权限管理方面的东西.希望通过本文能对大 ...

  4. linux 用户权限 数字,几个linux命令之用户权限相关命令

    一.基本概念 1.用户是Linux系统工作中重要的一环,用户管理包括用户和组,在LINUX系统中可以给不同的用户或组针对某一文件或目录设定不同的操作权限,其中这些权限包括读(r,数字代号是4),写(w ...

  5. linux让指定文件具有sudo的权限,Linux学习笔记——使用指定的用户权限执行程序——sudo...

    sudo可以用来以其他用户身份执行命令,sudo命令可以针对单个命令授予临时权限.sudo仅在需要时授予用户权限,减少了用户因为错误执行命令损坏系统的可能性. 1:sudo的帮助信息如下: [emai ...

  6. vue根据不同权限显示图片_vuex根据不同的用户权限展示不同的路由列表

    需求描述 最近接到一个新的需求,要求将系统的用户进行分类,用户登陆后根据不同的用户权限展示不同的功能列表. 这个功能在后台管理中很常见,大致的思路是 后台返回用户类型,前端根据用户类型生成该类用户可以 ...

  7. linux权限命令chgrp,Linux常用命令之用户权限管理chmod、chown、chgrp、umask命令讲解...

    这节课我们重点来学习权限管理命令,说到权限大家可能第一时间能想到的就是读.写.执行 rwx 三种权限,在正式讲解权限命令之前,先简单的介绍一下rwx权限对于文件和目录的不同含义.权限字符权限对文件的权 ...

  8. mysql添加新的实例_MySQL中添加新用户权限的实例详解

    有2个不同的方法增加用户:通过使用GRANT语句或通过直接操作MySQL授权表.比较好的方法是使用GRANT语句,因为他们是更简明并且好像错误少些. 下面的例子显示出如何使用MySQL客户安装新用户. ...

  9. linux 怎么改授权用户权限,linux – systemd:授予非特权用户权限以更改某个特定服务...

    我可以想到两种方法: 一种方法是使服务成为用户服务而不是系统服务. systemd单元不是创建系统单元,而是放在服务用户的主目录下,位于$HOME / .config / systemd / user ...

最新文章

  1. oracle中的聚簇,Oracle数据库的聚簇技术
  2. OpenCV图像处理——修复失焦模糊的图像
  3. 常见Python爬虫工具总结
  4. 附近有什么?8款可以查周边的App
  5. Tensorflow 迁移学习 识别中国军网、中国军视网Logo水印
  6. 零基础轻松学mysql_零基础轻松学MySQL 5.7
  7. Leetcode: Pascal's Triangle II
  8. missingno库—缺失值可视化
  9. CentOS 7中添加一个新用户并授权(转载)
  10. ABP中module-zero快速集成微信用户认证
  11. Oracle 11g下载及安装
  12. 【286页干货】一天搞懂深度学习(台湾资料科学年会课程)
  13. matlab关于图像切割的一些总结:imcrop,getrect,ndgrid,函数
  14. 我奋斗十八年不是为了和你一起喝咖啡
  15. pandas 学习task08文本数据
  16. LODOP直接用base64码输出图片
  17. 【leetcode刷题】72.6 和 9 组成的最大数字 ——Java版
  18. 有没有测试水泥稳定性的软件,水泥稳定碎石基层的试验检测项目有哪些?急 急 急!!!...
  19. G3D 渲染引擎简介
  20. 吊炸天,Spring Security还有这种用法

热门文章

  1. 用YAML构建数据测试DAO层
  2. MYSQL 浅谈MyISAM 存储引擎
  3. 初窥Javascript单元测试,附带掌握一门新技能的学习方式。
  4. 代码理解(2009.11.20)
  5. OpenCV-差分法实现绿叶识别(图像差分+颜色通道)
  6. pythonclasses_Python中的Classes和Metaclasses详解
  7. HTML示例06---水平线
  8. 2020.7.20-每日进步
  9. 要用linux,不会shell 基本语法搞不来~
  10. Selenium3元素定位详解与封装