PostgreSQL資料庫系列之十二 許可權管理

2021-10-06 23:57:16 字數 2191 閱讀 5095

當初始化pg資料庫後,它自動有會有乙個超級使用者,通常這個超級使用者的名稱與初始化pg資料庫時的作業系統使用者名稱相同。比如你在windows作業系統裡以administrator管理員部署,那麼pg資料庫也將會有乙個administrator(※ 大小寫嚴格區分)超級使用者作為超級管理員。

通常來說,dba不會將資料庫超級管理員提供給開發人員部署到業務系統配置檔案,而是額外建立相應許可權與用途的賬號給開發人員。此時就需要對資料庫許可權管理有充分的認識才可以避免刪庫跑路的問題。

postgresql資料庫中的使用者中有兩種許可權:

角色/使用者在grant方式賦予許可權,revoke方式撤銷許可權;

# 建立複製使用者

create user ericzhong replication login encrypted password 'ericzhong'

;# 變更使用者密碼

alter user ericzhong with encrypted password '123456'

;

#單錶讀寫授權:授權test賬號可以訪問schema為test的t1表

grant select,insert,update,delete on test.t1 to test

;#所有表授權:授權test賬號可以訪問schema為test的所有表

grant select,insert,update,delete on all tables in schema test to test

;

#列授權,授權指定列(test schema下的t1表的name列)的更新許可權給test使用者

grant update (name) on test.t1 to test

;#指定列授不同許可權,test schema下的t1表,檢視更新name、id欄位,插入name欄位

grant select

(name,id),update (name,id),insert(name) on test.t1 to test

;

#序列(自增鍵)屬性授權,指定test schema下的seq_id_seq 給test使用者

grant select,update on sequence test.seq_id_seq to test

;#序列(自增鍵)屬性授權,給使用者test授權test schema下的所有序列

grant select,update on all sequences in schema test to test

;

# 超級使用者登入資料庫

create

user ro_user password 'readonly'

;# 設定postgres資料庫為唯讀的transaction

alter

user ro_user set default_transaction_read_only=on;

# 賦予使用者許可權,檢視public模式下所有表:(新建表也會有唯讀許可權)

grant

usage

onschema

public

to ro_user;

alter

default

privileges

inschema

public

grant

select

ontables

to ro_user;

# 賦予使用者連線資料庫許可權

grant

connect

ondatabase zhong to ro_user;

# 切換到指定資料庫

\c zhong

# 賦予使用者表、序列檢視許可權

grant

usage

onschema

public

to ro_user;

grant

select

onall sequences in

schema

public

to ro_user;

grant

select

onall

tables

inschema

public

to ro_user;

postgresql模板資料庫

template0和template1為postgresql資料庫的模板資料庫,新建的資料庫預設使用template1作為模板。template0和template1的區別在於template0無法修改,因此你可以修改template1資料庫以定製新建立的資料庫。template資料庫無法被刪除 d...

postgresql資料庫安裝

安裝並初始化 1 解壓資料庫並放到指定目錄 在opt目錄下 tar xvzf postgresql 10.1 1 linux x64 binaries.tar.gz 解壓出來之後目錄為pgsql 2 mv pgsql usr local pgsql 3 建立pgsql使用者並設定密碼 useradd...

資料庫 postgresql 安裝

當前專案是使用django框架搭建介面層的業務,資料庫端使用了postgresql,這裡只是簡單記錄下自己的安裝流程,因為開發機器使用的mac,所以流程只是針對mac。這裡我使用的homebrew,這個工具就不多說了,沒有用過的可以到這裡 執行下面命令即可 brew install postgres...