6.2.?创建数据库

为了创建一个数据库,UXDB服务器必须启动并运行(见第?2.2?节)。

数据库用SQL命令CREATE DATABASE创建:

CREATE DATABASE name;

其中name遵循SQL标识符的一般规则。当前角色自动成为该新数据库的拥有者。以后删除这个数据库也是该拥有者的特权(同时还会删除其中的所有对象,即使那些对象有不同的拥有者)。

创建数据库是一个受限的操作。如何授权请见第?5.2?节

因为你需要连接到数据库服务器来执行CREATE DATABASE命令, 那么还有一个问题是劝拿庞蜗菲教ㄗ⒉嵬锯给定站点的第一个数据库是怎样创建的?第一个数据库总是由initdb命令在初始化数据存储区域时创建的(见第?2.1?节)。这个数据库被称为uxdb。因此要创建第一个普通数据库时,你可以连接到uxdb

在数据库集群初始化期间也会创建第二个数据库template1,。当在集群中创建一个新数据库时,实际上就是克隆了template1。这就意味着你对template1所做的任何修改都会体现在所有随后创建的数据库中。因此应避免在template1中创建对象,除非你想把它们传播到每一个新创建的数据库中。详见第?6.4?节

为了方便,你还可以用一个程序来创建新数据库: createdb

createdb dbname

createdb连接到uxdb数据库并且发出CREATE DATABASE命令,和前面介绍的完全一样。createdb参考页包含了调用细节。注意不带任何参数的createdb将创建一个使用当前用户名的数据库。

注意

第?4?章包含有关如何限制谁能连接到一个给定数据库的信息。

有时候需要为其他用户创建一个数据库,并且使其成为新数据库的拥有者, 这样他们就可以自己配置和管理这个数据库。要实现这个目标,使用下列命令之一: 用于SQL环境的

CREATE DATABASE dbname OWNER rolename;

或者用于shell的

createdb -O rolename dbname

只有超级用户才被允许为其他人(即为一个你不是其成员的角色)创建一个数据库。

XML 地图 | Sitemap 地图