亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > PostgreSQL > 正文

PostgreSQL7.0手冊-管理員手冊-28. 安全性

2019-09-08 23:33:53
字體:
來源:轉載
供稿:網友
第二十八章. 安全性
內容 
用戶認證 
用戶名和組 
訪問控制 
函數和規則 
安全 TCP/IP 聯接 
數據庫安全性分成幾個級別: 
  
數據庫文件保護。所有在數據庫里存儲的文件都受到保護,除了Postgres 超級用戶帳戶外其他用戶是不能讀取的。 
缺省的時候,客戶端只能通過一個本地的 Unix 套接字聯接到數據庫服務器上來,而不是通過 TCP/IP 套接字。后端必須帶 -i 選項啟動才能允許非本地的客戶端聯接上來?!?

可以通過在 PG_DATA 里的 pg_hba.conf 文件來限制可聯接的客戶端 IP 地址和/或用戶名?!?

客戶端聯接可以通過其他外部軟件包來認證?!?

Postgres 里的每個用戶都賦予了一個用戶名和一個(可選的)口令。缺省是,用戶對不是他們創建的數據庫沒有寫權限。 

用戶可以賦予組,而且表的訪問權限可以以組權限為基礎設置。

用戶認證
認證是后端服務器和 postmaster 認定正在請求訪問數據的用戶就是他/她自稱的那個人的過程。所有激活Postgres 的用戶都對照 pg_user 表的內容進行檢查以確保他們有這么做的權限(激活數據庫)。不過,對用戶的實際身份的的核對是通過好幾種方式進行的: 
從用戶 shell 來的用戶 
  
從用戶 shell 啟動的后端數據庫服務器在進行一個 setuid 調用把用戶標識轉為用戶 postgres 之前要檢查用戶的(有效的)用戶標識。有效的用戶標識被當作訪問控制檢查的基礎。不進行其他的認證。 
從網絡來的用戶 
  
如果 Postgres 系統是為分布(處理)制作的,任何人都可以訪問postmaster 進程的網際網的 TCP 端口。DBA 配置在 PGDATA 目錄里的 pg_hba.conf 文件,根據訪問從哪個主機來和要訪問哪個數據庫聲明需要采用的認證方式。參閱 pg_hba.conf(5) 獲取一份可以使用的認證系統的描述。當然,在 Unix 里,以主機為基礎的認證也不是無懈可擊的。有能力的入侵者也可能偽裝源主機(地址)。那些安全性問題超越了Postgres 的范疇?!?
以主機為基礎的訪問控制
以主機為基礎的訪問控制 是 PostgreSQL 決定哪些客戶端可以訪問數據庫以及那些客戶端上的用戶如何認證他們自己的基本控制的名稱?!?
每個數據庫系統都包含一個文件叫 pg_hba.conf,在其 PGDATA 目錄里,該文件控制誰可以聯接到各自的數據庫。 

每個正在訪問數據庫的客戶端必須被 pg_hba.conf 里的其中一條記錄涵蓋。否則所有從那個客戶端發送上來的聯接請求都將被拒絕,錯誤信息為 "User authentication failed"?。ㄓ脩粽J證失敗)?!?

文件 pg_hba.conf 的常用格式是一套記錄,每行一條??瞻仔谢蛘唠s亂符號("#")開頭的行被忽略。一條記錄是由若干用空格和/或 tab 分隔的字段組成。 

從客戶端來的聯接可以使用 Unix 域套接字或者網際網域套接字(例如:TCP/IP)建立。用 Unix 域套接字進行的聯接是用下面格式的記錄進行控制的: 

local database authentication method
這里 
   
 database 聲明記錄所應用的數據庫。值 all 表明該記錄應用于所有數據庫。 
authentication method 聲明一個用戶在用 Unix 域套接字與該數據庫聯接時用于認證他們自身的方法。不同的方法在下面描述?!?

用網際網(IP)域套接字進行的聯接是用下面格式的記錄進行控制的: 

host database TCP/IP address TCP/IP mask authentication method
TCP/IP address 邏輯上與聲明的 TCP/IP mask 和正在聯接的客戶端的 TCP/IP 地址分別相加。如果兩個結果相等則該記錄用于這次聯接。如果一個聯接匹配多于一條記錄,那么使用文件里第一條匹配的記錄?!CP/IP address 和 TCP/IP mask 都是用點分十進制符號表示的?!?
如果一個聯接不能和任何記錄相匹配,則應用拒絕認證方法(見下文)。 

認證方法
下面的認證方法可用于 Unix 和 TCP/IP 域套接字: 
trust 
無條件允許聯接。 
reject 
無條件拒絕聯接?!?
crypt 
客戶端被要求向用戶請求一個口令。該口令被加密后(使用 crypt(3))發送,然后與放在 pg_shadow 表里的口令進行比較。如果口令匹配,則允許聯接。 
password 
客戶端被要求向用戶請求一個口令。該口令以明文發送,然后與放在 pg_shadow 表里的口令進行比較。如果口令匹配,則允許聯接??梢栽凇assword 關鍵字后面聲明一個可選的文件名,用于提供對應的口令而不是使用 pg_shadow 表里面的。參閱 pg_passwd?!?
下面的認證方式只能用于 TCP/IP 域套接字: 
krb4 
Kerberos V4 用于認證用戶。 
krb5 
Kerberos V5 用于認證用戶。 
ident 
在客戶端的 ident 服務器用于認證該用戶(RFC 1413)??梢栽凇dent 關鍵字后面聲明一個可選的映射名,這樣允許 ident 用戶名映射成Postgres 用戶名。映射放在文件 $PGDATA/pg_ident.conf 里?!?
例子
# Trust any connection via Unix domain sockets.
local   trust
# Trust any connection via TCP/IP from this machine.
host    all     127.0.0.1       255.255.255.255         trust
# We don't like this machine.
host    all     192.168.0.10    255.255.255.0           reject
# This machine can't encrypt so we ask for passwords in clear.
host    all     192.168.0.3     255.255.255.0           password
# The rest of this group of machines should provide encrypted passwords.
host    all     192.168.0.0     255.255.255.0           crypt

--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

用戶名和組
要定義一個新用戶,運行工具程序 createuser。 
要把一個用戶或者一套用戶指派到一個新組,我們必須先定義該組,然后分派用戶到該組中去。在Postgres 里,這些步驟目前還不被一條 create group 命令支持(譯注:已經支持了)。代替的做法是,向 pg_group 系統表里插入一些合適的值,然后用 grant 命令給組賦予權限?!?

創建用戶
創建組
目前,我們還沒有簡便的方法設置用戶組。你必須顯式地插入/更新 pg_group 表。例如: 
jolly=> insert into pg_group (groname, grosysid, grolist)
jolly=>     values ('posthackers', '1234', '{5443, 8261}');
INSERT 548224
jolly=> grant insert on foo to group posthackers;
CHANGE
jolly=>
pg_group 里的域是: 
  
groname 
組名稱。這個名稱應該是純數字和字母組成。不要包含下劃線和其他標點。 
  
grosysid 
組標識。這是一個 int4。這個字段應該在各個組之間唯一?!?
grolist 
屬于這個組的 pg_user id?。俗R)的列表。這個字段是一個 int4[]?!?
把用戶分派到組

--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

訪問控制
Postgres 提供允許用戶限制其他用戶對他提供的數據的訪問的機制?!?
數據庫超級用戶 
數據庫超級用戶(也就是說,擁有設置了 pg_user.usesuper 字段的用戶)超越下面描述的所有訪問控制,只有兩點例外:如果用戶沒有設置了的 pg_user.usecatupd 字段,則不允許手工更新系統表,第二點是決不允許刪除(或者更改表結構)系統表?!?
訪問權限 
限制用戶對表的讀,寫和設置規則的的訪問權限在 grant/revoke(l) 里描述。 
表刪除和表結構修改 
象 alter,drop table,和 drop index 這樣的刪除或者修改現有表的命令只能由表的所有者執行。還有上面提到的,決不允許對系統表進行這些操作?!?

--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

函數和規則
函數和規則允許用戶在其他用戶可能不知道的情況下向后端服務器里插入代碼。因此,兩種機制都允許用戶使用特洛伊木馬對付其他用戶。唯一有效的保護措施是牢牢控制誰可以定義函數(即是向關系中寫入 SQL 域)和規則。我們還建議在 pg_class,pg_user 和 pg_group 上設置跟蹤和警告器。 
函數
用 SQL 以外的語言寫的在后端服務器進程里運行的函數擁有用戶 postgres 的權限(后端服務器帶著設置為 postgres 的真實有效的用戶標識運行。)用戶有可能從一個被信任的函數里面修改服務器的內部數據結構。因此,除了別的問題外,這樣的函數可以巧取任何系統訪問控制。這是一個用戶定義的 C 函數的固有毛病。
規則
就象 SQL 函數一樣,規則總是以激活后端服務器的用戶的標識和權限運行。
注意事項
我們沒有計劃準備顯式地支持 Postgres 內部數據的加密(當然我們無法阻止用戶在用戶定義函數里對數據進行加密)。我們也沒有計劃準備顯式地支持加密的網絡聯接,那樣將導致前/后端協議的完全重寫?!?
用戶名,組名和相關系統標識(比如,pg_user.usesysid 的內容)都是假設在整個數據庫里唯一的。如果不是這樣,會造成不可預料的結果。


--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

安全 TCP/IP 聯接
作者:來自一封 Gene Selkov, Jr. 的 e-mail。于 1999-09-08 為回答 Eric Marsden 的一個問題而作。
我們可以使用 ssh 來對 Postgres 服務器和客戶端之間的網絡聯接進行加密。經過適當處理后,這樣做可以獲得一個足夠安全的網絡聯接?!?
ssh 的文檔提供了前期了解所需的大多數信息。請參考 http://www.heimhardt.de/htdocs/ssh.html 獲取更多信息?!?
  我們可以只用兩個步驟做一次分步解釋?!?
通過 shh 運行一個安全的通道 

我們可以只用兩個步驟做一次分步解釋?!?



建立一個與后端機器的通道,象這樣: 
ssh -L 3333:wit.mcs.anl.gov:5432 postgres@wit.mcs.anl.gov
-L 參數的第一個數字 3333,是通道你這端的端口號。第二個數字,5432,是通道的遠端 -- 你的后端使用的端口號。在兩個端口號之間的名稱或者地址屬于服務器機器,ssh 的最后一個參數也是屬于服務器機器,它還包括可選的用戶名。如果沒有用戶名,ssh 將使用你登錄到客戶端機器的這個用戶名。你可以使用任何服務器機器接受的用戶名,而不一定是那些與 postgres 有關的?!?
既然你已經有了一個正在運行的 ssh 會話,那么你就可以把一個 postgres 客戶端與你本地主機上的那個你在上一步里聲明的端口號聯接了。如果是psql,你將需要另一個 shell,因為你在第一步里使用的 shell 會話現在被 ssh 占著呢。 

psql -h localhost -p 3333 -d mpw
注意你必須聲明 -h 參數以便讓你的客戶端使用 TCP 套接字而不是 Unix 套接字。如果你選擇 5432 作為通道你這一端的端口,你可以省略端口參數。

--------------------------------------------------------------------------------
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97免费视频在线| 成人av资源在线播放| 亚洲国产精品一区二区三区| 亚洲精品国精品久久99热| 国产不卡av在线免费观看| 88xx成人精品| 国产欧美日韩精品在线观看| 热99精品里视频精品| 午夜精品久久久久久久99热| 一区二区三区视频免费在线观看| 91在线国产电影| 国产欧美精品一区二区三区-老狼| 97视频在线观看视频免费视频| 久久久久亚洲精品国产| 欧美黄网免费在线观看| 日韩av一区二区在线观看| 91精品成人久久| 国产精品视频xxx| 日韩天堂在线视频| 日韩av电影手机在线观看| 久久精品国产综合| 最近2019好看的中文字幕免费| 国产精品一区二区av影院萌芽| 国产成人精品av在线| 91精品视频网站| 久久成人精品视频| 日本成人激情视频| 日韩高清电影免费观看完整| 91香蕉嫩草神马影院在线观看| 日韩中文字幕在线免费观看| 国产福利视频一区| 91av在线播放视频| 国产精品一区二区久久| 国内精品久久久| 国产精品久久久久久久久借妻| 欧美性猛交xxxx免费看久久久| 一本色道久久88亚洲综合88| 日韩资源在线观看| 91网站在线看| 国产成人精品免费久久久久| 欧美最顶级的aⅴ艳星| 性欧美长视频免费观看不卡| 538国产精品视频一区二区| 国产免费一区二区三区在线能观看| 国产视频丨精品|在线观看| 欧美激情小视频| 午夜精品久久久久久久男人的天堂| 91久久在线视频| 91精品国产九九九久久久亚洲| 亚洲一区二区三区视频| 欧美黑人巨大xxx极品| 亚洲精品视频二区| 色老头一区二区三区| 在线观看日韩视频| 欧美日韩国产成人高清视频| 成人性生交大片免费看视频直播| 亚洲国产精品999| 亚洲va久久久噜噜噜久久天堂| 亚洲一区二区三区sesese| 九九热r在线视频精品| 国产精品青青在线观看爽香蕉| 亚洲欧美另类自拍| 久久久久久久爱| 成人妇女淫片aaaa视频| 一夜七次郎国产精品亚洲| 国产亚洲欧美日韩美女| 亚洲色图色老头| 亚洲人精选亚洲人成在线| 欧美成人精品xxx| 成人午夜激情免费视频| 色综合伊人色综合网站| 国产亚洲福利一区| 精品视频9999| 欧美日韩在线观看视频小说| 欧美激情一区二区三区成人| 亚洲午夜小视频| 亚洲视频电影图片偷拍一区| 狠狠综合久久av一区二区小说| 国产男人精品视频| 日韩av在线影院| 九九九热精品免费视频观看网站| 亚洲成人黄色网址| 亚洲欧美制服第一页| 亚洲国产精品专区久久| 亚洲乱码一区二区| 另类天堂视频在线观看| 美乳少妇欧美精品| 亚洲高清色综合| 亚洲а∨天堂久久精品9966| 国产精品影片在线观看| 欧美高清在线视频观看不卡| 久久av中文字幕| 一本色道久久综合狠狠躁篇的优点| 国产精品普通话| 97免费视频在线| 久久国产加勒比精品无码| 久久久精品国产亚洲| 91精品国产高清久久久久久久久| 欧美日韩在线视频一区二区| 午夜免费在线观看精品视频| 日韩精品中文在线观看| 96sao精品视频在线观看| 亚洲精品国产成人| 久久久久久尹人网香蕉| 国产视频观看一区| 日韩国产精品视频| 久久精品国产一区二区三区| 亚洲最大福利网站| 91免费看片网站| 精品国产一区二区三区久久| 97色在线视频观看| 成人在线激情视频| 国产精品对白刺激| 亚洲91av视频| 神马久久久久久| 欧美伦理91i| 亚洲天堂男人的天堂| 国产精品18久久久久久首页狼| 国产一区二区香蕉| 亚洲少妇激情视频| 国产乱肥老妇国产一区二| 精品少妇v888av| 亚洲人成网7777777国产| 欧美激情18p| 尤物yw午夜国产精品视频明星| 国产一区二区三区三区在线观看| 91在线观看欧美日韩| 91精品久久久久久久久青青| 欧美日韩成人在线视频| 欧美激情videoshd| 久久资源免费视频| 欧美日韩国产限制| 亚洲欧美日韩中文在线制服| 在线观看不卡av| 在线观看亚洲视频| 欧美激情videoshd| 欧美成人自拍视频| 欧美激情a∨在线视频播放| 日韩欧美黄色动漫| 欧美日本黄视频| 日产日韩在线亚洲欧美| 国产精品极品美女粉嫩高清在线| 日韩电影中文字幕在线| 亚洲男人的天堂在线播放| 51午夜精品视频| 日韩免费观看视频| 深夜福利国产精品| 亚洲国产天堂久久国产91| 日韩欧美成人免费视频| 日韩在线视频网站| 国产一区二区美女视频| 欧美老少配视频| 国产欧美一区二区三区视频| 日日噜噜噜夜夜爽亚洲精品| 色综合影院在线| 日韩欧美在线免费观看| 97国产一区二区精品久久呦| 日韩中文在线中文网在线观看| 久久精品免费电影| 精品中文字幕在线观看| 黑人欧美xxxx| 国产日产欧美a一级在线| 日韩成人av网址| 久久久国产精品亚洲一区|