PostgreSQL_13.1安裝步驟


PostgreSQL_13.1安裝步驟
自動安裝腳本下載:https://download.csdn.net/download/kinshy/14053240
 

#創建postgres用戶(數據庫初始化用到)
useradd postgres
#設置用戶密碼
passwd postgres


#創建pgsql目錄
mkdir /usr/local/pgsql
#用戶授權
chown -R postgres.postgres /usr/local/pgsql


# 創建數據庫文件夾
mkdir -p /data/postgresql_data
#授權postgres用戶data權限
chown -R postgres.postgres /data/postgresql_data/

 

#創建安裝目錄
mkdir /usr/local/pgsql
cd /usr/local/pgsql

#下載源碼包
wget https://ftp.postgresql.org/pub/source/v13.1/postgresql-13.1.tar.gz


#解壓到pgsql目錄
# 解壓
tar -zxvf postgresql-13.1.tar.gz
cd ~/postgresql-13.1


# 安裝必要依賴
yum install -y bison flex readline-devel zlib-devel
yum install docbook-dtds docbook-style-xsl fop libxslt -y
yum install -y gcc

 

readline 跳過方法:./configure --without -readline


# 配置編譯
./configure --prefix=/usr/local/pgsql/postgresql-13.1
# 編譯
make
make install


#必須切換到postgres用戶才能初始化
su postgres
# 初始化數據庫
/usr/local/pgsql/postgresql-13.1/bin/initdb -D /data/postgresql_data/


啟動數據庫
/usr/local/pgsql/postgresql-13.1/bin/pg_ctl -D /data/postgresql_data/ -l logfile start
停止數據庫
/usr/local/pgsql/postgresql-13.1/bin/pg_ctl -D /data/postgresql_data/ stop
重啟數據庫
/usr/local/pgsql/postgresql-13.1/bin/pg_ctl restart -D /data/postgresql_data/ -m fast


#修改配置
cd /data/postgresql_data/
cp postgresql.conf postgresql.conf.bak
vi postgresql.conf
#修改listen_addresses,  #defaults to 'localhost'; use '*' for all。
listen_addresses = '*'
#連接數 增大一些,默認100連接數不夠用,如果做主從配置,從庫需要比主庫大,可將從庫設置為1100
max_connections = 1000
修改默認端口號(默認端口號5432)
port = 5433


#修改連接認證方式
vi /data/postgresql_data/pg_hba.conf
在文件底部,增加如下配置
host    all             all             0.0.0.0/0               md5

#注意:最后一個單詞不要用trust,建議用md5,原因如下:

 

 

#修改環境變量
vi ~/.bash_profile
增加配置
export PGHOME=/usr/local/pgsql/postgresql-13.1
export PGDATA=/data/postgresql_data
PATH=$PATH:$HOME/bin:$PGHOME/bin
export PATH


#刷新使配置生效
source ~/.bash_profile
#查看環境變量
echo $PATH


#設置開機自啟動(需要root用戶)
cd /usr/local/pgsql/postgresql-13.1/contrib/start-scripts
chmod a+x linux
cp linux /etc/init.d/postgresql
vi /etc/init.d/postgresql
#修改配置文件:三個地方PGUSER、prefix、PGDATA,如下
# PGUSER是一個非root用戶(這里的PGUSER是postgres)
PGUSER=postgres
prefix=/usr/local/pgsql/postgresql-13.1
PGDATA="/data/postgresql_data"


#開機自啟生效
chkconfig --add postgresql
chkconfig


#啟動服務
service postgresql start
ps -ef | grep postgres


#修改初始密碼
#盡量用強力密碼:大寫+特殊符號+小寫+數字
psql -U postgres -p 5433
ALTER USER postgres with encrypted password '你的密碼xxxx'; 
\q


權限控制
參考:https://github.com/digoal/blog/blob/master/201506/20150601_01.md

1. 權限管理

最危險的就是最容易暴露的數據庫用戶,當然是應用連接數據庫的賬號(以下簡稱應用賬號)。
應用賬號權限越大,應用程序被攻擊后破壞性就越大。
例如用戶有刪數據庫,刪表,刪索引,刪表空間,刪SCHEMA,刪函數等等這樣的權限的話,危害極大。

安全建議:

1.1 使用超級用戶創建數據庫(查看所有數據庫:\l)
    CREATE DATABASE db_test;

1.2 切換數據庫(\c),並創建數據庫的SCHEMA(查看所有命名空間:\dn)
    \c db_test;
    CREATE SCHEMA db_schema;

1.3 創建dev開發賬號角色(查看所有用戶:\du)
    CREATE USER dev;

1.4 修改dev用戶密碼
    ALTER USER dev with encrypted password 'dev的密碼';

1.5 回收數據庫,schema,language,應用對象的public權限。
    revoke all on schema db_schema from public;
    revoke all on language plpgsql from public;
    revoke all on database postgres from public;
    revoke all on table ... from public;
    revoke all on function ... from public;
    ......

1.6 將數據庫,schema的使用權限賦予給應用賬號。
    grant usage on schema db_schema to dev;
    grant connect on database db_test to dev;
    
1.7 將應用需要訪問的對象的相關權限賦予給應用賬號。
    例如賦予dev用戶所有表的select,insert,update,delete權限:
    GRANT select,insert,update,delete ON ALL TABLES IN SCHEMA public TO dev;
    或者賦予dev用戶所有表的所有權限:
    GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO dev;

1.8 不要忘記序列(自增鍵)屬性授權:
    GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO dev;

  這樣,應用賬號只有對象的使用權限,沒有對象的DROP,TRUNCATE,REPLACE權限,相對來說是更安全的。

 

  為了安全起見,安裝完成后禁用掉postgres用戶ssh遠程登陸:
  在/etc/ssh/sshd_config配置文件中設置DenyUsers選項,格式如下:

# 拒絕 postgres 帳戶通過 SSH 登錄系統
DenyUsers postgres

  配置完成需要重啟SSHD服務

  [root@dev ~]# service sshd restart

 

The End!

 

參考資料
-----------------------------------------------------------------------
#postgresql 主從集群安裝
https://www.cnblogs.com/x-j-p/p/13085588.html

#創建dev只讀用戶
參考:https://www.jianshu.com/p/2dc7b73da72c

#用戶管理指令
參考:https://blog.csdn.net/cui_yonghua/article/details/106073987

#postgresql.conf參數配置
參考:https://blog.csdn.net/weixin_43783011/article/details/108431561

PostgreSQL之autovacuum自動清理
參考:https://www.jianshu.com/p/9a34b9610012

PostgreSQL日常維護手冊
參考:https://www.kancloud.cn/zzgjb/pgsql/76192
————————————————
版權聲明:本文為CSDN博主「kinshy」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/kinshy/article/details/112134102


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM