前提条件:
用户必须拥有数据库创建的权限或者是数据库的系统管理员权限才能创建数据库。
背景信息:
- 与oracle不同,在Antdb中可以创建多个数据库,且不同的数据库之间是完全隔离的。客户端程序一次只能连接一个数据库。也不能在不同的数据库之间相互查询。
- Antdbt在初始化完成后,会默认有三个数据库:
- template0 模板库,不可修改。
- template1 模板库,可以修改,`create database`即是从这个模板库继承对象
- postgres 系统数据库,存放集群信息等数据,不建议作为业务库使用。
操作命令:
获取帮助信息:
使用“\h create database”可以得到创建数据库命令的帮助信息:
postgres=# \h create database
Command: CREATE DATABASE
Description: create a new database
Syntax:
CREATE DATABASE name
[ [ WITH ] [ OWNER [=] user_name ]
[ TEMPLATE [=] template ]
[ ENCODING [=] encoding ]
[ LC_COLLATE [=] lc_collate ]
[ LC_CTYPE [=] lc_ctype ]
[ TABLESPACE [=] tablespace_name ]
[ ALLOW_CONNECTIONS [=] allowconn ]
[ CONNECTION LIMIT [=] connlimit ]
[ IS_TEMPLATE [=] istemplate ] ]
简单的创建数据库命令如下:
postgres=# create database testdb1;
CREATE DATABASE
在帮助信息中,可以看到,在创建数据库的时候,同样可以进行一些参数的设置,比如指定数据库的用户、字符集、表空间、连接数限制等。
查看所有创建的数据库:
在“psql”中可以通过“\l”命令查看集群中有哪些数据库:
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+--------+----------+---------+-------+-------------------
testdb1 | antdbt | UTF8 | C | C |
postgres | antdbt | UTF8 | C | C |
template0 | antdbt | UTF8 | C | C | =c/antdbt +
| | | | | antdbt=CTc/antdbt
template1 | antdbt | UTF8 | C | C | =c/antdbt +
| | | | | antdbt=CTc/antdbt
(5 rows)
为了便于后面的使用,可以给新建数据库的使用权限赋给public
grant all on database testdb1 to public;
注意:
如果在业务模型设计中,数据库和用户具有强绑定的关系,比如某个数据库归某个用户使用,则不建议进行此赋权操作。也可以将数据库的权限赋给指定的几个用户。
关于AntDB数据库
AntDB数据库始于2008年,在运营商的核心系统上,为全国24个省份的10亿多用户提供在线服务,具备高性能、弹性扩展、高可靠等产品特性,峰值每秒可处理百万笔通信核心交易,保障系统持续稳定运行近十年,并在通信、金融、交通、能源、物联网等行业成功商用落地。