W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
array_nulls
(boolean
)
這個參數(shù)控制數(shù)組輸入解析器是否把未用引號的NULL
識別為一個空數(shù)組元素。默認為on
,允許輸入包含空值的數(shù)組值。但是PostgreSQL 8.2 之前的版本不支持數(shù)組中的空值,并且因此將把NULL
當(dāng)作指定一個值為字符串“NULL”的正常數(shù)組元素。對于那些要求舊行為的應(yīng)用的向后兼容性,這個變量可以被設(shè)置為
off
。
注意即使這個變量為off
也能夠創(chuàng)建包含空值的數(shù)組值。
backslash_quote
(enum
)
這個參數(shù)控制字符串文本中的單引號是否能夠用\'
來表示。首選的 SQL 標準的方法是將其雙寫(''
),但是PostgreSQL在歷史上也接受\'
。不過使用\'
容易導(dǎo)致安全風(fēng)險,因為在某些客戶端字符集編碼中,有多字節(jié)字符的最后一個字節(jié)在數(shù)值上等價于
ASCII 的\'
。如果客戶端代碼沒有做到正確轉(zhuǎn)義,那么將會導(dǎo)致 SQL 注入攻擊。如果服務(wù)器拒絕看起來帶有被反斜線轉(zhuǎn)義的單引號的查詢,那么就可以避免這種風(fēng)險。backslash_quote
的可用值是on
(總是允許\'
)、off
(總是拒絕)以及
safe_encoding
(只有客戶端編碼不允許在多字節(jié)字符中存在 ASCII \
時允許)。safe_encoding
是默認設(shè)置。
注意在符合標準的字符串文本中,\
就表示\
。這個參數(shù)只影響不符合標準的文本的處理,包括轉(zhuǎn)義字符串語法(E'...'
)。
escape_string_warning
(boolean
)
打開時,如果在普通字符串文本中('...'
語法)出現(xiàn)了 一個反斜線(\
)并且standard_conforming_strings
為關(guān)閉,那么就會發(fā)出一個警告。默認值是on
。
希望使用反斜線作為轉(zhuǎn)義符的應(yīng)用應(yīng)該被修改來使用轉(zhuǎn)義字符串語法(E'...'
),因為在 SQL 標準中普通字符串的默認行為是將反斜線視作一個普通字符。這個變量可以被啟用來幫助定位需要被更改的代碼。
lo_compat_privileges
(boolean
)
在PostgreSQL 9.0 之前,大對象不具有訪問特權(quán)并且因此總是所有用戶可讀可寫的。為了和以前的版本兼容,把這個變量設(shè)置為on
可以禁用這種新的特權(quán)檢查。默認是off
。只有超級用戶可以更改這個設(shè)置。
設(shè)置這個參數(shù)不會禁用所有與大對象相關(guān)的安全檢查 — 除了那些在PostgreSQL 9.0中已經(jīng)修改了的默認行為。
operator_precedence_warning
(boolean
)
當(dāng)開啟時,對于任何從PostgreSQL 9.4 以來由于操作符優(yōu)先級 變化而導(dǎo)致含義改變的結(jié)構(gòu),解析器將發(fā)出一個警告。這有助于審計應(yīng)用,已檢查是否 優(yōu)先級變化破壞了什么東西。但是它的本意并不是希望在生產(chǎn)環(huán)境中保持打開,因為它 會對某些完全合法、兼容標準的 SQL 代碼發(fā)出警告。默認為off
。
更多信息請見第 4.1.6 節(jié)。
quote_all_identifiers
(boolean
)
當(dāng)數(shù)據(jù)庫產(chǎn)生 SQL 時,強制所有標識符被引號包圍,即使它們(當(dāng)前)不是關(guān)鍵字。這將影響EXPLAIN
的輸出以及pg_get_viewdef
等函數(shù)的結(jié)果。另請參閱pg_dump和pg_dumpall的--quote-all-identifiers
選項。
standard_conforming_strings
(boolean
)
控制普通字符串文本('...'
)是否按照 SQL 標準把反斜線當(dāng)普通文本。從PostgreSQL 9.1 開始,默認值為on
(之前的發(fā)行中默認值為off
)。應(yīng)用可以檢查這個參數(shù)來判斷字符串文本如何被處理。這個參數(shù)的存在也可以被當(dāng)做轉(zhuǎn)義字符串語法(E'...'
)被支持的標志。如果一個應(yīng)用希望反斜線被當(dāng)做轉(zhuǎn)義字符,應(yīng)該使用轉(zhuǎn)義字符串語法(
第 4.1.2.2 節(jié))。
synchronize_seqscans
(boolean
)
它允許對大型表的順序掃描與其他掃描同步,因此并發(fā)掃描可以在幾乎相同的時刻讀取相同的塊,這樣可以分擔(dān) I/O 負載。當(dāng)啟用這個參數(shù)時,一個掃描可能會從表的中間開始并且之后“繞回”到開頭以覆蓋所有的行,這樣可以與已在進行中的掃描活動同步。對于沒有ORDER BY
子句的查詢來,這樣的掃描會在返回行的順序中造成不可預(yù)料的改變。將這個參數(shù)設(shè)置為
off
以保證 8.3 之前的行為(順序掃描總是從表的起始處開始)。默認值是on
。
transform_null_equals
(boolean
)
當(dāng)打開時,形為
(或expr
= NULLNULL =
)的表達式將被當(dāng)做expr
, 也就是說,如果expr
IS NULLexpr
得出空值值則返回真,否則返回假。正確的 SQL 標準兼容的
行為總是返回空(未知)。因此這個參數(shù)默認為expr
= NULLoff
。
不過,在Microsoft Access里的過濾表單生成的查詢似乎使用
來測試空值,因此,如果你使用這個接口訪問數(shù)據(jù)庫,你可能想把這個選項打開。因為expr
= NULL
形式的表達式總是返回空值(使用 SQL 標準解釋)。它們不是非常有用并且在普通應(yīng)用中也不常見,在應(yīng)用中也不常見,因此這個選項實際上沒有什么危害。但是新用戶常常對涉及 空值的表達式的語義上感到困惑,因此這個選項默認為關(guān)閉。expr
= NULL
請注意這個選項只影響= NULL
形式,而不影響其它比較操作符或者其它與一些涉及等值操作符的表達式在計算上等效的其他表達式(例如IN
)。因此,這個選項不是劣質(zhì)程序的一般修復(fù)。
相關(guān)信息請見第 9.2 節(jié)。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: