Postgresql:建立資料庫 先有蛋?先有雞?

來源:互聯網
上載者:User

如下:

第一個蛋? ..\share\下的postgres.bki、*.sql檔案

initdb.exe 根據 ..\share\下的postgres.bki、*.sql檔案 初始化資料庫儲存簇。這時該初始化簇包含3個資料庫、一個supuser!

  • 預設調用initdb.exe的os使用者(postgres)的同名使用者串連資料庫(postgres)
  • virgin(處女——純潔啊)模板資料庫tmeplate0:模板、不可以串連
  • 通用模板資料庫template1:模板,可以串連
  • 預設調用initdb.exe的os使用者(postgres)的同名的超級使用者(postgres)

 

create database  new_db_name[template {template1(預設)|template_name}]

  • 這裡的template_name指模板資料庫可以是任何資料庫。super使用者和owner使用者可以想怎麼做就怎麼做,否則只有模板資料庫才可以讓普通具有createdb許可權的使用者指定該資料庫作為模板
  • 預設使用者資料庫:完全可以幹掉!預設情況下,postgresql讓template1預設資料庫可以接受使用者的串連!
  • 預設資料庫可以重建,他就是普通使用者資料庫
  • template1模板資料庫也可以幹掉!不過你要知道,他基本上是最後一個可以刪除的資料庫了!如果沒有其他正常的使用者資料庫,你就準備重新 initdb.exe吧!!!
  • template1資料庫可以重建!必須要制定其他模板了!如果沒有該庫,就不能使用沒有template子句的create database 了

 

資料庫的兩個屬性標誌

  • datistemplate:是否是可以供普通使用者可以使用的模板資料庫,對supuser 和 owner 使用者無效
  • datallowconn:是否允許使用者串連到該資料庫!任何要作為模板進行clone的資料庫必須是乾淨的,不能有其他串連!對對supuser 和 owner 使用者也是如此!

 

create database db_name

[

  [with]

[owner [=] other_role_name]  --只有superuser才能指定其他owner。預設當前 role

[encoding [=] encoding_name]  --字元集編碼,預設utf8

[template [=] template_db_name]  --(模板)資料庫,預設template1

[tablespace [=] tablespace_name]  --預設資料表空間,預設pg_default

[connection limit [=] connlimit]  --啟動並執行並非串連數,預設不限制(-1)

]

建立資料庫必須有create database 許可權 或 superuser

不允許在事務內執行

使用程式createdb.exe是對create database語句的封裝

 

 

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.