| PostgreSQL 8.0.0 中文文件(轉譯自 PostgreSQL 中國 製作的簡體中文版本) | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Chapter 18. 管理資料庫 | Fast Forward | Next |
為了建立和刪除資料庫, 必須先執行PostgreSQL伺服器(參閱 Section 16.3)。
資料庫是用 SQL 命令 CREATE DATABASE: 建立的:
CREATE DATABASE name;
這裡的 name 遵循SQL標識符的一般規則。 目前用戶自動成為此新資料庫的所有者。同時,以後刪除這個資料庫也是這個用戶的特權(同時還會刪除其中的所有對象, 即使那些對像有不同的所有者也這樣。)
建立資料庫是一個有限制的操作。參閱 Section 17.2 獲取如何賦權限的訊息。
因為您需要與資料庫伺服器連線才能執行命令CREATE DATABASE, 那麼還有一個問題是任意節點的第一個資料庫是怎樣建立的? 第一個資料庫總是由initdb命令在初始化資料儲存區的時候建立的。 (參閱Section 16.2。)這個資料庫叫template1而且不能被刪除。 因此要建立第一個"真正"的資料庫的時候您可以與template1連線。
template1的名字可不是隨便取的,當建立一個新的資料庫時, 實際上就是克隆了(複製)了模板資料庫。 這就意味著您對template1做的任何修改都會傳播到所有隨後建立的資料庫。 這就意味著說您不能把模板資料庫用於真正的工作中, 但是如果明智地使用這個特性,那它可以帶來許多方便。 更多細節見Section 18.3。(譯註:比如增加用戶定義函數等等。)
另外,為了方便,您還可以用一個可以在 shell 中執行的程序來建立新資料庫,createdb。
createdb dbname
createdb 沒變什麼魔術,它和template1連接並執行 CREATE DATABASE 命令。 createdb 的手冊頁包含使用它的細節。尤其是不帶任何參數調用 createdb 將以目前用戶名為名稱建立資料庫, 這可能是也可能不是您要的。
注意: Chapter 19 包含有關如何限制某個用戶可以連接的資料庫的訊息。
有時候您想為其他什麼人建立一個資料庫。那個用戶應該成為新資料庫的所有者,這樣他就可以自己配置和管理這個資料庫。要實現這個目標, 使用下列命令中的某一條:
CREATE DATABASE dbname OWNER username;
上面的是在 SQL 環境中,或者是
createdb -O username dbname
要想為其他用戶建立一個資料庫,您自己必須是資料庫的超級用戶。