LightDB/PostgreSQL 設定LightDB訪問白名單pg_hba.conf
ltsql登陸的時候被拒絕了,其實這個問題比較簡單,限制了使用者ip登陸
[lightdb@hs-10-19-36-28 ~]$ PGPASSWORD=benchmarksql ltsql -U benchmarksql -d benchmarksql1000 -h 10.20.30.231 -p 5678 ltsql: error: FATAL: no pg_hba.conf entry for host "10.19.36.28", user "benchmarksql", database "benchmarksql1000", SSL off
LightDB客戶端認證是由配置檔案pg_hba.conf控制的。HBA的意思是"host-based authentication", 也就是基於主機的認證。
相比於MySQL和Oracle,訪問控制策略MySQL使用'user'@'ip'中的ip控制允許使用者從哪裡建立連線登陸,而Oracle是配置sqlnet.ora中配置白名單來允許哪些IP訪問。
tcp.validnode_checking=yes tcp.invited_nodes=(10.0.0.109,127.0.0.1) #必須包含資料庫所在伺服器ip,否則監聽無法啟動 tcp.excluded_nodes=(192.168.220.1) #黑名單
而Oracle中監聽中配置0.0.0.0是允許外界透過本機所有ip建立連線訪問,這是另外一個事情。
LISTENER = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521)) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = cdb1) (ORACLE_HOME = /u01/oracle/products/19.3) (SID_NAME = cdb) ) (SID_DESC = (GLOBAL_DBNAME = cdb2) (ORACLE_HOME = /u01/oracle/products/19.3) (SID_NAME = cdb2) ) )
pg_hba.conf配置檔案如下
# TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all trust # IPv4 local connections: host all all 127.0.0.1/32 trust host all all 0.0.0.0/0 trust # IPv6 local connections: host all all ::1/128 trust # Allow replication connections from localhost, by a user with the # replication privilege. local replication all trust host replication all 127.0.0.1/32 trust host replication all ::1/128 trust
該配置檔案有5個引數,分別為:
TYPE(主機型別)
DATABASE(資料庫名)
USER(使用者名稱)
ADDRESS(IP地址/掩碼)
METHOD(加密方法)
TYPE有4個值
-
local:使用Unix-domainsocket
-
host:使用TCP/IP連線,可以是SSL的,也可以不是
-
hostssl:必須是SSL的
-
hostnossl:必須是非SSL的
DATABASE(資料庫名)
-
all,all表示所有,但不包括replication。多個資料庫用“,”隔開。
-
sameuser
-
samerole
-
replication
USER(使用者名稱)
-
可以為"all",表示所有,也可以具體指定一個使用者。多個使用者用“,”隔開。和DATABASE一樣,也可以將配置放到檔案中,檔名加上字首@
ADDRESS
可以是為一個主機名,或者由IP地址和CIDR掩碼組成。掩碼可以為0-32(IPv4)或者0-128(IPv6)間的一個整數,32表示子網掩碼為255.255.255.255,24表示子網掩碼為255.255.255.0。主機名以“.”開頭。
samehost可以匹配所有主機
samenet可以匹配同一個掩碼內的所有主機。
例:192.168.10.122/32表示單一主機,192.168.10.0/24表示192.168.0.1~192.168.0.255網段內所有主機,0.0.0.0/0表示所有主機。
METHOD(密碼加密策略)
-
password表示以明文方式傳送密碼
-
md5和scram-sha-256會以對應的方式加密再傳送密碼
測試,配置如下hba.conf檔案,資料庫231伺服器上
# TYPE DATABASE USER ADDRESS METHOD #"local" is for Unix domain socket connections only # local all all trust # IPv4 local connections: # host all all 127.0.0.1/32 trust host all all 10.20.30.193/32 md5 host all all 10.20.30.231/32 md5 # IPv6 local connections: #host all all ::1/128 trust # Allow replication connections from localhost, by a user with the # replication privilege. local replication all trust host replication all 127.0.0.1/32 trust host replication all ::1/128 trust
透過231的127.0.0.1 地址登入,如下可以看到不在白名單內
[lightdb@HS-10-20-30-231 data]$ PGPASSWORD=benchmarksql ltsql -U benchmarksql -d benchmarksql1000 -h 127.0.0.1 -p 5678 ltsql: error: FATAL: no pg_hba.conf entry for host "127.0.0.1", user "benchmarksql", database "benchmarksql1000", SSL off
透過231地址登入,可以登入,在白名單內,同樣
[lightdb@HS-10-20-30-231 data]$ PGPASSWORD=benchmarksql ltsql -U benchmarksql -d benchmarksql1000 -h 10.20.30.231 -p 5678 ltsql (13.3-22.1) Type "help" for help. benchmarksql@benchmarksql1000=> [lightdb@hs-10-20-30-193 ~]$ PGPASSWORD=benchmarksql ltsql -U benchmarksql -d benchmarksql1000 -h 10.20.30.231 -p 5678 ltsql (13.3-22.1) Type "help" for help. benchmarksql@benchmarksql1000=>
透過28伺服器無法登入
[lightdb@hs-10-19-36-28 ~]$ PGPASSWORD=benchmarksql ltsql -U benchmarksql -d benchmarksql1000 -h 10.20.30.231 -p 5678 ltsql: error: FATAL: no pg_hba.conf entry for host "10.19.36.28", user "benchmarksql", database "benchmarksql1000", SSL off
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29990276/viewspace-2895031/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle/MySQL透過odbc訪問PostgreSQL for LightDBOracleMySql
- LightDB/postgresql內建特性之訪問oracle之oracle_fdw介紹SQLOracle
- LightDB/PostgreSQL 客戶端部署SQL客戶端
- LightDB/PostgreSQL等待事件 Lock transactionidSQL事件
- PostgreSQL/LightDB分割槽表之常見問題SQL
- PostgreSQL/Lightdb 更改列屬性語法SQL
- LightDB/PostgreSQL 相容Oracle儲存過程SQLOracle儲存過程
- 使用GoldenGate 遷移Oracle到PostgreSQL/LightDBGoOracleSQL
- PostgreSQL/LightDB 分割槽表之分割槽裁剪SQL
- PostgreSQL/LightDB 不走並行是為什麼?SQL並行
- LightDB部署模式模式
- postgresql如何設定外界訪問SQL
- LightDB/PostgreSQL 生成可重複執行的指令碼SQL指令碼
- oracle 設定監聽白名單,並且怎麼設定白名單地址Oracle
- lightdb -- Oracle相容 -- rownumOracle
- LightDB canopy 表管理
- LightDB/Postgres 使用ora2pg遷移Oracle到LightDB/PostgresOracle
- LightDB-指定lightdb_syntax_compatible_type切換不同資料引擎
- LightDB-Oracle和LightDB邏輯備份測試對比(十二)Oracle
- PostgreSQL-訪問策略配置檔案pg_hba.conf檔案(八)SQL
- lightdb -- merge into insert 相容 OracleOracle
- LightDB canopy叢集管理
- LightDB分散式實現分散式
- egg 設定跨域白名單跨域
- PostgreSQL/LightDB- Tried to send an out-of-range integer as a 2-byte valueSQL
- LightDB/Postgresql 記錄客戶端啟動版本問題導致啟動失敗問題SQL客戶端
- LightDB-指定lightdb_syntax_compatible_type切換不同資料引擎(十一)
- LightDB Canopy 常見報錯問題分析(一)
- LightDB訂閱和釋出
- lightdb的merge into使用介紹
- PostgreSQL/LightDB copy ERROR: invalid byte sequence for encoding "UTF8": 0x00SQLErrorEncoding
- Data Lake Analytics IP白名單設定攻略
- 360安全衛士如何設定白名單
- Nginx通過geo模組設定白名單Nginx
- lightdb WARNING: could not establish connection after 30000 ms
- LightDB/Postgres邏輯複製的搭建
- CATIA軟體許可黑白名單設定方法
- 什麼是海外HTTP代理白名單?如何設定?HTTP