【最佳实践】瀚高数据库安全版v4.5.8非root用户运行的安装配置
瀚高數據庫安全版v4.5.8非root用戶運行配置
大家都知道的瀚高數據庫安全版都是使用root安裝并以root來運行的,之所以是默認只能用root安裝是因為有些特殊環境下必須使用root。拋開這些特殊環境,我們也可以讓它運行在普通用戶下。
操作系統:Centos 7.9,架構:x86_64
瀚高數據庫:安全版v4.5.8
(說明:以下每一節的命令操作,均可以復制粘貼直接執行)
Here we go! >>
01. 安裝軟件
登錄 root 用戶,將安全版安裝包上傳到 Centos 目錄下,執行以下命令校驗安裝包完整性:
md5sum -c hgdb-see-4.5.8-db43858.x86_64.rpm.md5得到結果:hgdb-see-4.5.8-db43858.x86_64.rpm: OK
然后再安裝:
rpm -ivh hgdb-see-4.5.8-db43858.x86_64.rpm02. 用戶和組
創建一個組highgo:
/usr/sbin/groupadd highgo創建一個新用戶highgo:
/usr/sbin/useradd -m -g highgo highgo -c "Highgo DataBase Server" echo "666666" | passwd --stdin highgo說明:-c 后面說明的是用戶的用途。
03. 相關目錄和權限
創建以下目錄并設置相應的權限,便于highgo用戶能夠繼續操作和運行:
mkdir -p /data/highgo/data mkdir -p /data/highgo/hgdbbak/archive chown -R highgo:highgo /data/highgo chown -R highgo:highgo /opt/highgo ln -sf /data/highgo/data /opt/highgo/hgdb-see-4.5.8/data說明:
04. 環境變量
配置用戶highgo的環境變量:
cat >> /home/highgo/.bash_profile <<EOF ################## add by Highgo at `date +%Y-%m-%d_%H:%M:%S` for hgdb start ################## export HG_BASE=/opt/highgo export HGDB_HOME=/opt/highgo/hgdb-see-4.5.8 export PGPORT=5866 export PGDATABASE=highgo export PATH=\$HGDB_HOME/bin:\$PATH export PGDATA=\$HGDB_HOME/data ################## add by Highgo at `date +%Y-%m-%d_%H:%M:%S` for hgdb end #################### EOF說明:全部復制執行即可,不要只復制里面的 export 命令行,如果真要這么做,請把$前面的\去掉。
切換到用戶highgo下:
su - highgo此時用戶highgo的環境變量會生效,后面的操作開始在highgo下執行。
05. 設置初始密碼文件
這里的密碼文件是方便初始化initdb時候使用的,不用多次輸入密碼了,如:
echo "Hello@123456" > /tmp/5866 echo "Hello@123456" >> /tmp/5866 echo "Hello@123456" >> /tmp/5866注意:這里的密碼不是最終密碼,后面我們改有效期的時候會更換掉。
06. 初始化數據庫簇
接下來我們就需要初始化了,一般國產環境初始化命令如下所示:
initdb -A sm3 -e sm4 -c "echo 12345678" -D $PGDATA --pwfile=/tmp/5866 -E 'UTF8'說明:
07. SSL 證書
SSL 證書是數據庫啟動需要的文件,創建命令如下:
hg_sslkeygen.sh /opt/highgo/hgdb-see-4.5.8/data08. 免密登錄文件
創建免密登錄文件:
cat > ~/.pgpass <<EOF host:port:database:user:password localhost:5866:*:sysdba:Hello@123456 localhost:5866:*:syssao:Hello@123456 localhost:5866:*:syssso:Hello@123456 EOF修改權限:
chmod 0600 ~/.pgpass說明:免密登錄文件一般在定時備份時使用比較方便,以及psql命令行登錄時也可以免密登錄。
09. 客戶端驗證
需要設置一下,否則只能本機訪問數據庫服務,命令如下:
cat >> $PGDATA/pg_hba.conf <<EOF ################## add by Highgo at `date +%Y-%m-%d_%H:%M:%S` for hgdb start ################## # IPv4 local connections: host all all 0.0.0.0/0 sm3 ################## add by Highgo at `date +%Y-%m-%d_%H:%M:%S` for hgdb end #################### EOF說明:
10. 啟動數據庫
接下來,我們就可以啟動數據庫了,命令如下:
pg_ctl start11. 標準參數設置
以下是常用參數設置,可以根據需要進行微調:
psql highgo sysdba <<EOF alter system set listen_addresses = '*'; alter system set max_connections = 2000; alter system set work_mem='16MB'; alter system set shared_buffers = '1GB'; alter system set checkpoint_completion_target = 0.8; alter system set log_destination = 'csvlog'; alter system set logging_collector = on; alter system set log_directory = 'hgdb_log'; alter system set log_filename = 'highgodb_%d.log'; alter system set log_rotation_age = '1d'; alter system set log_rotation_size = 0; alter system set log_truncate_on_rotation = on; alter system set log_statement = 'ddl'; alter system set log_connections=on; alter system set log_disconnections=on; alter system set checkpoint_timeout='30min'; alter system set maintenance_work_mem='1GB'; alter system set archive_mode = on; alter system set archive_timeout = '30min'; alter system set archive_command = 'cp %p /data/highgo/hgdbbak/archive/%f'; alter system set log_line_prefix = '%m [%p] %a %u %d %r %h'; alter system set nls_length_semantics = 'char'; EOF注意:根據實際物理內存,修改shared_buffers為物理內存的1/4。
重啟生效:
pg_ctl restart12. 密碼有效期
所有用戶默認密碼有效期是7天,需要執行以下命令來改為永久:
psql highgo syssso <<EOF select set_secure_param('hg_idcheck.pwdvaliduntil','0'); alter user current_user password 'Hello@123' valid until 'infinity'; \c - sysdba alter user current_user password 'Hello@123'; \c - syssao alter user current_user password 'Hello@123'; EOF記得將免密文件中的舊密碼也替換了:
sed -i 's/Hello@123456/Hello@123/g' /home/highgo/.pgpass重啟生效:
pg_ctl restart13. 改善性能
以下參數影響數據庫性能,執行命令關掉來改善,如下:
psql highgo syssso <<EOF select set_secure_param('hg_macontrol','min'); select set_secure_param('hg_rowsecure','off'); select set_secure_param('hg_showlogininfo','off'); select set_secure_param('hg_clientnoinput','0'); select set_secure_param('hg_idcheck.pwdpolicy','high'); EOF重啟生效:
pg_ctl restart14. 關閉審計功能
該功能默認是開啟的,但會占用資源。如沒有必要,可以考慮關掉。需要提前溝通好有些測評(等保分保)需要開啟。關閉命令如下:
psql highgo syssao <<EOF select set_audit_param('hg_audit','off'); EOF重啟生效:
pg_ctl restart15. 安裝授權
安全版默認是一個月的試用期,若要延長使用,可以聯系瀚高商務申請延長授權,聯系電話400-708-8006。
拿到授權文件后,安裝步驟如下:
(1)修改授權文件權限:
chmod 0600 hgdb_0_t.lic(2)查看確認授權信息:
hg_lic -c -F hgdb_0_t.lic(3)安裝授權文件:
hg_lic -l -F hgdb_0_t.lic結果:
loading succeeded. The new license is an trial version and will expire until 2023-06-30 23:59:59
注意:這種授權安裝方式是瀚高數據庫安全版v4.5.8開始啟用的新方法,后面版本不能使用這種方式。
16. 服務設置
如果不適用root用戶運行,自動配置的服務單元不能自啟動,需要做出變更。
切回root用戶,執行以下命令,更換服務單元文件:
cat > /usr/lib/systemd/system/hgdb-see-4.5.8.service <<EOF ################## add by Highgo at `date +%Y-%m-%d_%H:%M:%S` for hgdb start ################## [Unit] Description=hgdb Requires=network.target local-fs.target After=network.target local-fs.target[Service] Type=forkingUser=highgo Group=highgoEnvironment=PGDATA=/opt/highgo/hgdb-see-4.5.8/dataOOMScoreAdjust=-1000ExecStart=/opt/highgo/hgdb-see-4.5.8/bin/pg_ctl start -D \${PGDATA} ExecStop=/opt/highgo/hgdb-see-4.5.8/bin/pg_ctl stop -D \${PGDATA} ExecReload=/opt/highgo/hgdb-see-4.5.8/bin/pg_ctl reload -D \${PGDATA} TimeoutSec=60[Install] WantedBy=multi-user.target graphical.target ################## add by Highgo at `date +%Y-%m-%d_%H:%M:%S` for hgdb end #################### EOF重載服務單元:
systemctl enable hgdb-see-4.5.8啟動數據庫服務:
systemctl start hgdb-see-4.5.8<< There you go!
總結
以上是生活随笔為你收集整理的【最佳实践】瀚高数据库安全版v4.5.8非root用户运行的安装配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ansible篇-CentOS7安装AW
- 下一篇: 一些免费的无限制接口