From 4dc76f68fd6d487c4581600bb8a0146d9d786f93 Mon Sep 17 00:00:00 2001 From: rentc Date: Fri, 30 Sep 2022 01:18:34 +0000 Subject: [PATCH 1/3] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20cont?= =?UTF-8?q?ent/zh/post/rentc/Linux-Centos6,7=E7=BD=91=E7=BB=9C=E9=85=8D?= =?UTF-8?q?=E7=BD=AE.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...21\347\273\234\351\205\215\347\275\256.md" | 22 ------------------- 1 file changed, 22 deletions(-) delete mode 100644 "content/zh/post/rentc/Linux-Centos6,7\347\275\221\347\273\234\351\205\215\347\275\256.md" diff --git "a/content/zh/post/rentc/Linux-Centos6,7\347\275\221\347\273\234\351\205\215\347\275\256.md" "b/content/zh/post/rentc/Linux-Centos6,7\347\275\221\347\273\234\351\205\215\347\275\256.md" deleted file mode 100644 index a273223a..00000000 --- "a/content/zh/post/rentc/Linux-Centos6,7\347\275\221\347\273\234\351\205\215\347\275\256.md" +++ /dev/null @@ -1,22 +0,0 @@ -+++ - -title = "Linux(Centos6,7)网络配置" - -date = "2022-09-09" - -tags = ["Linux(Centos6,7)网络配置"] - -archives = "2022-09" - -author = "海量数据" - -summary = "Linux(Centos6,7)网络配置" - -img = "/zh/post/Rentc/title/title.jpg" - -times = "18:30" - -+++ - -背景:在安装数据库前很多很多人会选择安装一台虚拟机,安装虚拟机在非常重要的是配置网络,这里介绍两种配置网络的方法。
1.首先我们介绍一下一些常用的关于网络的linux命令 ,我们可以通过下面的命令来查看我们的网卡信息,选择我们需要配置的网卡。
ifconfig:查看活动的网卡信息,仅限于活动的网卡
ifconfig eth[0-9]:后面跟某个网卡则可以直接查看某个网卡的信息
ifconfig –a :则是查看所有的网卡信息,包括活动或非活动的网卡信息
2.⑴、命令配置法:ifconfig和ip

Ifconfig ethx:x IP/netmask

ip addr add IP dev ethx label ethX:X

利用命令配置的只是暂时的IP地址,如果重启网络服务和系统都会失效的。

⑵、配置文件配置法:

修改/etc/sysconfig/network-scripts/ifcfg-ethx:x

DEVICE=ethx:x

BOOTPROTO=static

IPIPADDR= IP地址

NETMASK= 子网掩码

GATEWAY= 网关

ONBOOT=YES 是否开机启用

HWADDR=...... MAC
参考文档:[https://blog.51cto.com/chrinux/1188108](https://blog.51cto.com/chrinux/1188108) - -- Gitee From ffb29876a3b1a974f30247d686824c8749107320 Mon Sep 17 00:00:00 2001 From: rentc Date: Fri, 30 Sep 2022 01:18:40 +0000 Subject: [PATCH 2/3] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20cont?= =?UTF-8?q?ent/zh/post/rentc/SQL=E5=BC=95=E6=93=8E-=E8=AF=8D=E6=B3=95?= =?UTF-8?q?=E5=88=86=E6=9E=90.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...15\346\263\225\345\210\206\346\236\220.md" | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 "content/zh/post/rentc/SQL\345\274\225\346\223\216-\350\257\215\346\263\225\345\210\206\346\236\220.md" diff --git "a/content/zh/post/rentc/SQL\345\274\225\346\223\216-\350\257\215\346\263\225\345\210\206\346\236\220.md" "b/content/zh/post/rentc/SQL\345\274\225\346\223\216-\350\257\215\346\263\225\345\210\206\346\236\220.md" deleted file mode 100644 index 1f08935d..00000000 --- "a/content/zh/post/rentc/SQL\345\274\225\346\223\216-\350\257\215\346\263\225\345\210\206\346\236\220.md" +++ /dev/null @@ -1,19 +0,0 @@ -+++ - -title = "SQL引擎-词法分析" - -date = "2022-09-09" - -tags = ["SQL引擎-词法分析"] - -archives = "2022-09" - -author = "海量数据" - -summary = "SQL引擎-词法分析" - -img = "/zh/post/Rentc/title/title.jpg" - -times = "18:40" - -+++
前言:是数据库重要的子系统之一。SQL引擎负责对用户输入的SQL语言进行编译,生成可执行的执行计划,然后将执行计划交给执行引擎进行执行。
SQL引擎包括:
1.解析器,根据SQL语句生成一棵语法解析树(parse tree)。
2. 分析器 , 对语法解析树进行语义分析 ,生成一 棵查询树( query tree)。
3.重写器,按照规则系统中存在的规则对查询树进行改写。
4.计划器,基于查询树生成一棵执行效率最高的计划树(plan tree)。
5.执行器,按照计划树中的顺序访问表和索引,执行相应查询。
SQL解析对输入的SQL语句进行词法分析、语法分析、语义分析,获得查询解析树或者逻辑计划。这篇文章主要是介绍词法分析。
词法分析:从查询语句中识别出系统支持的关键字、标识符、操作符、终结符等,每个词确定自己固有的词性。
1.词法结构和语法结构分别由scan.l和gram.y文件定义,并通过lex和yacc分别编译成scan.cpp和gram.cpp文件。
2.raw_parser:Lex ( Lexical Analyzar) 词法分析工具,在文件 scan.l里定义。负责识别标识符,SQL 关键字等,对于发现的每个关键字或者标识符都会生成一个记号并且传递给分析器;Yacc (Yet Another Compiler Compiler) 语法分析器,在文件 gram.y里定义。包含一套语法规则和触发规则时执行的动作.
3.由lex工具进行词法分析。lex工具通过对已经定义好的词法文件进行编译,生成词法分析的代码。 词法文件是scan.l,它根据SQL语言标准对SQL语言中的关键字、标识符、操作符、常量、终结符进行了定义和识别
4.词法分析将一个SQL划分成多个不同的token,每个token会有自己的词性。由三部分组成,分别是名字、Token值、类别。名字是字符串原型,Token值是一个int型的数。kwlist.h中定义了大量的关键字
举例说明:
![image.png](https://cdn.nlark.com/yuque/0/2022/png/29767082/1662717423884-bd4f2443-185d-4b97-a74b-b63f5a62d7b6.png#clientId=u8068a7c7-6502-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=26&id=u264c2ec0&margin=%5Bobject%20Object%5D&name=image.png&originHeight=32&originWidth=537&originalType=binary&ratio=1&rotation=0&showTitle=false&size=6780&status=done&style=none&taskId=u3ab17660-b27d-4d6e-a2cb-c171d350b52&title=&width=429.6)
![image.png](https://cdn.nlark.com/yuque/0/2022/png/29767082/1662717437491-343f2d6a-8734-47d3-b720-553c47dd2c15.png#clientId=u8068a7c7-6502-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=258&id=u3b341ec7&margin=%5Bobject%20Object%5D&name=image.png&originHeight=322&originWidth=353&originalType=binary&ratio=1&rotation=0&showTitle=false&size=14853&status=done&style=none&taskId=u48f58901-1c19-4b4e-8ab4-b721d9b105d&title=&width=282.4) -- Gitee From 2a1697ea656e85c6f8eefe0baa157b5f862f4eef Mon Sep 17 00:00:00 2001 From: rentc Date: Fri, 30 Sep 2022 02:28:11 +0000 Subject: [PATCH 3/3] =?UTF-8?q?update=20content/zh/post/rentc/user?= =?UTF-8?q?=E3=80=81role=E5=8C=BA=E5=88=AB=E4=B8=8E=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E6=9D=83=E9=99=90.md.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: rentc --- ...5\277\347\224\250\346\235\203\351\231\220.md" | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git "a/content/zh/post/rentc/user\343\200\201role\345\214\272\345\210\253\344\270\216\344\275\277\347\224\250\346\235\203\351\231\220.md" "b/content/zh/post/rentc/user\343\200\201role\345\214\272\345\210\253\344\270\216\344\275\277\347\224\250\346\235\203\351\231\220.md" index e3eb6076..a7efe663 100644 --- "a/content/zh/post/rentc/user\343\200\201role\345\214\272\345\210\253\344\270\216\344\275\277\347\224\250\346\235\203\351\231\220.md" +++ "b/content/zh/post/rentc/user\343\200\201role\345\214\272\345\210\253\344\270\216\344\275\277\347\224\250\346\235\203\351\231\220.md" @@ -18,6 +18,18 @@ times = "10:40" +++ -定义
角色是拥有数据库对象和权限的实体。在不同的环境中角色可以认为是一个用户,一个组或者兼顾两者。
从创建用户和角色的语义(create user/role)上看也没有区别,唯一的区别就是用户默认带有login权限。
查询用户相关信息可以查看视图pg_user,查看角色相关信息可以查看pg_roles,但如果你查看pg_user和pg_roles的视图定义,会发现这两个视图都来源于基表pg_authid。
**所以我们可以理解用户就是带有login属性的角色。** +定义 + +角色是拥有数据库对象和权限的实体。在不同的环境中角色可以认为是一个用户,一个组或者兼顾两者。 + +从创建用户和角色的语义(create user/role)上看也没有区别,唯一的区别就是用户默认带有login权限。 + +查询用户相关信息可以查看视图pg_user,查看角色相关信息可以查看pg_roles,但如果你查看pg_user和pg_roles的视图定义,会发现这两个视图都来源于基表pg_authid。所以我们可以理解用户就是带有login属性的角色。 + #### 私有用户 -角色的属性有很多,可以通过\h create user/role来查看,也可以直接在pg_authid系统表中查看。
这里主要介绍一个比较重要的属性:**INDEPENDENT**,即在非三权分立模式下,创建具有INDEPENDENT属性的私有用户,
针对该私有用户的对象,系统管理员和拥有CREATEROLE属性的安全管理员在未经其授权前,只能进行控制操作(DROP、ALTER、TRUNCATE),无权进行INSERT、DELETE、SELECT、UPDATE、COPY、GRANT、REVOKE、ALTER OWNER操作。 + +角色的属性有很多,可以通过\h create user/role来查看,也可以直接在pg_authid系统表中查看。 + +这里主要介绍一个比较重要的属性: + +**INDEPENDENT**,即在非三权分立模式下,创建具有INDEPENDENT属性的私有用户,针对该私有用户的对象,系统管理员和拥有CREATEROLE属性的安全管理员在未经其授权前,只能进行控制操作(DROP、ALTER、TRUNCATE),无权进行INSERT、DELETE、SELECT、UPDATE、COPY、GRANT、REVOKE、ALTER OWNER操作。 -- Gitee