美文网首页
Day02-a.m.-MySQL体系结构与用户权限管理

Day02-a.m.-MySQL体系结构与用户权限管理

作者: 驮着集装箱的鲸鱼 | 来源:发表于2019-06-15 20:05 被阅读0次

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  #<==数据行和索引

\color{#ea4335}{面试题:请说一下MySQL中常见的存储引擎}

\color{#ea4335}{面试题:请你说明MyISAM和InnoDB在存储方式上的异同}

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@'oldguo.com' #<==只允许oldguo用户从oldguo.com这个域名登录到数据库
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

相关文章

  • Day02-a.m.-MySQL体系结构与用户权限管理

    1. 数据库逻辑结构 何为逻辑结构? 登录数据库后,通过执行SQL命令看到的对象,就是逻辑结构 2. 数据库物理结...

  • day17项目【权限管理】-03 权限管理功能(接口)

    01-权限管理需求描述 一、权限管理需求描述 不同角色的用户登录后台管理系统拥有不同的菜单权限与功能权限,权限管理...

  • mysql用户权限与缓存

    mysql 用户权限与缓存 mysql用户和权限管理: 元数据数据库:mysql 用户帐号: 'USERNAME'...

  • 用户和权限管理

    用户管理 权限管理 收回权限 查看权限

  • Mysql 用户权限管理

    MYSQL 用户权限 MySQL之权限管理 用户权限管理 SQL脚本 1.创建用户 PARAMETER'scorp...

  • 13笔记---find

    上周回顾 用户管理 组的管理 如何给用户提权? 权限管理 特殊权限 重定向与管道 管道技术 今日内容 1.按照名称...

  • Oracle | 用户、权限、角色管理操作

    一、用户管理 1、创建用户 2、修改用户 3、删除用户 二、权限管理 1、系统权限 - 授权操作 2、对象权限 -...

  • linux 之用户权限

    用户权限相关命令 目标 用户/权限/组的基本概念 用户管理终端命令 访问权限终端命令 01.用户管理 1.1 多用...

  • linux修改权限的相关命令

    Linux命令-用户、权限管理 用户是Unix/Linux系统工作中重要的一环,用户管理包括用户与组账号的管理。 ...

  • linux回顾(2)

    1.Linux命令-用户、权限管理 用户是Unix/Linux系统工作中重要的一环,用户管理包括用户与组账号的管理...

网友评论

      本文标题:Day02-a.m.-MySQL体系结构与用户权限管理

      本文链接:https://www.haomeiwen.com/subject/fgjyfctx.html