array_nulls (boolean)
#
这个参数控制数组输入解析器是否把未用引号的NULL识别为一个空数组元素。默认为on,允许输入包含空值的数组值。但是PostgreSQL 8.2 之前的版本不支持数组中的空值,因此将把NULL当作指定一个值为字符串“NULL”的正常数组元素。对于那些要求旧行为的应用的向后兼容性,这个变量可以被设置为off。
注意即使这个变量为off也能够创建包含空值的数组值。
backslash_quote (enum)
#
这个参数控制字符串文本中的单引号是否能够用\'来表示。首选的 SQL 标准的方法是将其双写(''),但是PostgreSQL在历史上也接受\'。不过使用\'容易导致安全风险,因为在某些客户端字符集编码中,有多字节字符的最后一个字节在数值上等价于 ASCII 的\。如果客户端代码没有做到正确转义,那么将会导致 SQL 注入攻击。如果服务器拒绝看起来带有被反斜线转义的单引号的查询,那么就可以避免这种风险。backslash_quote的可用值是on(总是允许\')、off(总是拒绝)以及safe_encoding(只有客户端编码不允许在多字节字符中存在 ASCII \时允许)。safe_encoding是默认设置。
注意在符合标准的字符串文本中,\就表示\。这个参数只影响不符合标准的文本的处理,包括转义字符串语法(E'...')。
escape_string_warning (boolean)
#
打开时,如果在普通字符串文本中('...'语法)出现了一个反斜线(\)并且standard_conforming_strings为关闭,那么就会发出一个警告。默认值是on。
希望使用反斜线作为转义符的应用应该被修改来使用转义字符串语法(E'...'),因为在 SQL 标准中普通字符串的默认行为是将反斜线视作一个普通字符。这个变量可以被启用来帮助定位需要被更改的代码。
lo_compat_privileges (boolean)
#
在PostgreSQL 9.0之前的版本中,大对象没有访问权限,因此始终可以被所有用户读取和写入。将此变量设置为on会禁用新的权限检查,以保持与之前版本的兼容性。默认值为off。只有超级用户和具有适当SET权限的用户才能更改此设置。
设置这个变量不会禁用所有与大对象相关的安全检查 — 只有那些在PostgreSQL 9.0中已经修改的默认行为。
quote_all_identifiers (boolean)
#
当数据库生成 SQL 时,强制所有标识符被引号包围,即使它们(当前)不是关键字。这将影响EXPLAIN的输出以及pg_get_viewdef等函数的结果。另请参阅pg_dump和pg_dumpall的--quote-all-identifiers选项。
standard_conforming_strings (boolean)
#
这控制普通字符串文本('...')是否按照 SQL 标准把反斜线当作普通字符。从PostgreSQL 9.1 开始,默认值为on(之前的版本默认值为off)。应用可以检查这个参数来判断字符串文本如何被处理。这个参数的存在也可以被视为转义字符串语法(E'...')被支持的标志。如果一个应用希望反斜线被当作转义字符,应该使用转义字符串语法(第 4.1.2.2 节)。
synchronize_seqscans (boolean)
#
这允许大型表的顺序扫描彼此同步,以便并发扫描在几乎相同的时刻读取相同的块,从而共享 I/O 负载。当启用此功能时,扫描可能会从表的中间开始,然后“绕回”到末尾以覆盖所有行,以便与已在进行中的扫描活动同步。这可能导致没有ORDER BY子句的查询返回的行顺序发生不可预测的变化。将此参数设置为off可确保 8.3 之前的行为,即顺序扫描始终从表的开头开始。默认值为on。
transform_null_equals (boolean)
#
当打开时,形为(或expr = NULLNULL = )的表达式将被当做expr, 也就是说,如果expr IS NULLexpr得出空值则返回真,否则返回假。正确的 SQL 标准兼容的行为总是返回空(未知)。因此这个参数默认为expr = NULLoff。
不过,在Microsoft Access里的过滤表单生成的查询似乎使用来测试空值,因此,如果你使用这个接口访问数据库,你可能想把这个选项打开。因为expr = NULL形式的表达式总是返回空值(使用 SQL 标准解释),它们不是非常有用并且在普通应用中也不常见,因此这个选项实际上没有什么危害。但是新用户常常对涉及空值的表达式的语义感到困惑,因此这个选项默认为关闭。
expr = NULL
请注意这个选项只影响= NULL形式,而不影响其他比较操作符或者其他与一些涉及等值操作符的表达式在计算上等效的其他表达式(例如IN)。因此,这个选项不是劣质程序的一般修复。
相关信息请见第 9.2 节。
allow_alter_system (boolean)
#
当 allow_alter_system 设置为
off 时,如果执行 ALTER
SYSTEM 命令,将返回错误。此参数只能在
postgresql.conf 文件中或服务器命令行上设置。默认值为
on。
注意,此设置不能被视为安全功能。它仅禁用ALTER SYSTEM命令。
它并不阻止超级用户使用其他SQL命令更改配置。超级用户有多种方法
在操作系统级别执行shell命令,因此无论此设置的值如何,都可以修改
postgresql.auto.conf。
关闭此设置旨在用于由某些外部工具管理的
PostgreSQL 配置的环境。
在这样的环境中,出于良好意图的超级用户可能会
错误地 使用 ALTER SYSTEM
来更改配置,而不是使用外部工具。
这可能导致意外行为,例如外部工具在稍后更新配置时
覆盖更改。
将此参数设置为 off 可以帮助避免此类错误。
该参数仅控制 ALTER SYSTEM 的使用。
存储在 postgresql.auto.conf 中的设置
即使 allow_alter_system 设置为
off,也会生效。