库、模式、表空间
数据库
数据库基集簇与数据库实例
- KES集簇是由单个KES实例管理的数据库的集合
- KES集簇中的库使用相同的全局配置文件和监听端口、共享相关的进程和内存结构
- 同一数据库集簇中的进程、相关的内存结构统称为实例
数据库
- 数据库是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合
- 从物理结构来说:数据库由一系列位于文件系统上的文件组成的
- 从逻辑结果来说:数据库内部通过表空间、模式、表/索引等对象与文件系统上的文件关联
创建数据库语法
CREATE DATABASE dbname WITH OWNER=username TEMPLATE=template ENCODING=encoding LC_COLLATE=lc_collate LC_TYPE=lc_ctype TABLESPACE=tablespace_name ALLOW_CONNECTIONS=allowconn CONNECTION LIMIT=connlimit IS_TEMPLATE=istemplate
参数 | 介绍 |
---|---|
dbname | 数据库名称,在同一个KES集簇下不能同名 |
username | 指定该数据库的属主,默认属主是创建数据库的用户 |
template | 模板名称,新建的数据库通过克隆数据库模板templatel而生成,可选择模板或自定义创建模板 |
encoding | 数据库字符集 |
lc_collate | 数据库的排序规则,默认参照模板方式 |
lc_ctype | 数据库的字符分类,默认参照模板方式 |
tablespace_name | 数据库关联的表空间,该库的相关对象存储空间将使用该表空间 |
allowconn | False:不允许用户连接; True:允许用户连接 |
connlimit | 数据库允许连接数,缺省为 -1 无限制 |
istemplate | True:具有createdb权限的用户可以从模板; False:超级用户或库的所有者可以从模板克隆 |
客户端认证
sys_hba.conf
- 该文件控制客户端访问服务器时使用基于主机的连接认证
- 在调用initdb执行数据目录初始化时,会在数据目录中默认部署这个文件
- 它可以配置以下一些客户端认证策略
- 允许哪些用户连接到哪些数据库
- 允许用户从哪些IP或哪些网段的IP连接到服务器
- 指定用户连接时使用的身份验证模式
- 强制拒绝哪些用户从哪些网络地址登陆哪些数据库
- 文件内容和格式要求
sys_hba.conf
是普通文本文件,可以直接使用文本编辑器修改- 文本中的空白行将被忽略,以#开头的是注释行
- 以行为单位,每行是一个有效的记录,不允许跨行的记录存在
- 生效行字段为包含
连接类型 库名 用户名 客户端IP(网段) 认证方式
- 生效行记录各字段之间以空格分开
- 用户登陆验证说明
- 服务器在用户登录时需要匹配文件中配置策略,从前往后顺序查找
- 找到匹配的配置后不再往后查找,允许用户连接
- 如果找到文件最后也没有满足的配置,则拒绝用户连接向用户发送错误提示
配置选项解析
TYPE选项[表示主机连接类型]
DATABASE选项[表示数据库名称]
USER选项[表示登录用户]
METHOD选项
文件示例
sys_ident.conf
- 该配置文件用于配置用户利用操作系统认证登录数据库的映射关系
- 要使用操作系统认证,需要在
sys_hba.conf
中配置连接认证方式为ident
- 配置映射关系的记录格式为
映射名 操作系统用户 数据库用户
,选项使用空格间隔 - 操作系统认证只允许用户在服务器本地登陆(local)策略下进行配置