postgres簡單使用

2021-07-09 10:35:33 字數 2983 閱讀 6915

#次安裝後,會預設生成名為postgres的linux系統使用者、資料庫和資料庫使用者(作為資料庫管理員),首先修改postgres資料庫使用者的密碼,然後增加gerrit需要的資料庫

#切換到postgres使用者

sudo su postgres

#登入postgres資料庫

psql postgres

#修改postgres使用者登入密碼

alteruser postgres withpassword

'password'

#輸入密碼

postgres=#

#輸入第二遍密碼

postgres=# \q

#建立資料庫使用者dbuser,並設定密碼

create user dbuser with password 'password';

#建立使用者資料庫,這裡為exampledb,並指定所有者為dbuser

create database exampledb owner dbuser;

#將exampledb資料庫的所有許可權都賦予dbuser,否則dbuser只能登入控制台,沒有任何資料庫操作許可權。

grant all privileges on database exampledb to dbuser;

psql -u postgres -d postgres -h 127.0

.0.1 -p 5432

#上面命令的引數含義如下:-u指定使用者,-d指定資料庫,-h指定伺服器,-p指定埠。

psql

#psql命令存在簡寫形式。如果當前linux系統使用者,同時也是postgresql使用者,則可以省略使用者名稱

\h

#檢視sql命令的解釋,比如\h select。

\?#檢視psql命令列表。

\l#列出所有資料庫。\c#

[database_name]:連線其他資料庫。

\d#列出當前資料庫的所有**。\d#

[table_name]:列出某一張**的結構。

\du#列出所有使用者。

\password

#設定使用者密碼

\e#開啟文字編輯器。

\conninfo

#列出當前資料庫和連線的資訊。

\q#退出

配置檔案
ls /etc/postgresql/9.4/main/

environment pg_hba.conf postgresql.conf

pg_ctl.conf pg_ident.conf start.conf

#postgresql.conf伺服器配置檔案

pg_hba.conf是客戶端認證配置檔案
# database administrative login by unix domain socket

local all postgres peer

# type database user address method

# "local" is for unix domain socket connections only

local all

all peer

# ipv4 local connections:

host all

all127.0

.0.1/32 md5

# ipv6 local connections:

host all

all ::1/128 md5

#允許10.1.1.0~10.1.1.255網段登入資料庫:

host all

all10.1

.1.0/24 md5

#信任192.168.1.10登入資料庫:

host all

all192.168

.1.10/32 trust

method指定如何處理客戶端的認證。常用的有ident,md5,password,trust,reject等

ident是linux下postgresql預設的local認證方式,凡是能正確登入伺服器的作業系統使用者(注:不是資料庫使用者)就能使用本使用者對映的資料庫使用者不需密碼登入資料庫。使用者對映檔案為pg_ident.conf,這個檔案記錄著與作業系統使用者匹配的資料庫使用者,如果某作業系統使用者在本檔案中沒有對映使用者,則預設的對映資料庫使用者與作業系統使用者同名。比如,伺服器上有名為user1的作業系統使用者,同時資料庫上也有同名的資料庫使用者,user1登入作業系統後可以直接輸入psql,以user1資料庫使用者身份登入資料庫且不需密碼。很多初學者都會遇到psql -u username登入資料庫卻出現「username ident 認證失敗」的錯誤,明明資料庫使用者已經createuser。原因就在於此,使用了ident認證方式,卻沒有同名的作業系統使用者或沒有相應的對映使用者。解決方案:1、在pg_ident.conf中新增對映使用者;2、改變認證方式。

md5是常用的密碼認證方式,如果你不使用ident,最好使用md5。密碼是以md5形式傳送給資料庫,較安全,且不需建立同名的作業系統使用者。

password是以明文密碼傳送給資料庫,建議不要在生產環境中使用。

trust是只要知道資料庫使用者名稱就不需要密碼或ident就能登入,建議不要在生產環境中使用。

reject是拒絕認證。

docker中postgres的使用

docker中的postgre映象執行後預設有乙個postgres使用者 sudo postgres 切換到postgres使用者 在shell中執行 psql命令進入資料庫終端 建立使用者 create usernamewith password password superuser create...

postgres之jsonb屬性的簡單操作

更新操作 attributes屬性為jsonb型別 方法定義 jsonb set target jsonb,path text,new value jsonb create missing boolean 引數 target 目標 jsonb型別的屬性 path 路徑,如果jsonb是陣列 表示在下...

postgres 使用函式批量分段刪除

一 postgres使用函式批量刪除資料萬級資料 create or replace function del logs datas returns text as declare b count int begin b count 10 while b count 0 loop delete fr...