反斜杠引号

一个 GUC,用于控制引号标记的表示方式,由 \’ 表示。

backslash_quote 是一个 配置参数,用于确定是否可以在字符串文字中使用 \' 来表示引号标记。

backslash_quote 添加于 PostgreSQL 8.2

默认值

backslash_quote 的默认值为:safe_encoding

用法

在标准 SQL 中,单引号 (') 在字符串文字中通过重复它 ('') 来表示,例如:

SELECT 'hello ''world''!'

但是,PostgreSQL 从历史上也接受反斜杠转义形式 (\'),例如:

SELECT 'hello \'world\'!'

这在某些客户端字符集编码中可能存在潜在的安全漏洞。

backslash_quote 可以设置为以下值之一

  • on
  • off
  • safe_encoding

on 表示 \' 将在所有情况下都被接受,

off 阻止使用 \',如果检测到它,将导致引发 ERROR

safe_encoding(默认值)表示仅当客户端编码不允许在多字节字符中使用 ASCII \ 时,才会接受 \'

请注意,backslash_quote 仅在以下情况下有效:

按 PostgreSQL 版本分列的详细信息

反斜杠引号 (PostgreSQL 18)

设置 safe_encoding
单位  
类别 版本和平台兼容性/以前的 PostgreSQL 版本
简短描述 设置是否允许在字符串文字中使用“\’”。
额外描述  
上下文 用户
变量类型 枚举
来源 默认值
最小值  
最大值  
枚举值 safe_encoding, on, off
引导值 safe_encoding
重置值 safe_encoding
源文件  
源代码行  
挂起重启 false

文档反斜杠引号

反斜杠引号 (PostgreSQL 17)

设置 safe_encoding
单位  
类别 版本和平台兼容性/以前的 PostgreSQL 版本
简短描述 设置是否允许在字符串文字中使用“\’”。
额外描述  
上下文 用户
变量类型 枚举
来源 默认值
最小值  
最大值  
枚举值 safe_encoding, on, off
引导值 safe_encoding
重置值 safe_encoding
源文件  
源代码行  
挂起重启 false

文档反斜杠引号

反斜杠引号 (PostgreSQL 16)

设置 safe_encoding
单位  
类别 版本和平台兼容性/以前的 PostgreSQL 版本
简短描述 设置是否允许在字符串文字中使用“\’”。
额外描述  
上下文 用户
变量类型 枚举
来源 默认值
最小值  
最大值  
枚举值 safe_encoding, on, off
引导值 safe_encoding
重置值 safe_encoding
源文件  
源代码行  
挂起重启 false

文档反斜杠引号

反斜杠引号 (PostgreSQL 15)

设置 safe_encoding
单位  
类别 版本和平台兼容性/以前的 PostgreSQL 版本
简短描述 设置是否允许在字符串文字中使用“\’”。
额外描述  
上下文 用户
变量类型 枚举
来源 默认值
最小值  
最大值  
枚举值 safe_encoding, on, off
引导值 safe_encoding
重置值 safe_encoding
源文件  
源代码行  
挂起重启 false

文档反斜杠引号

反斜杠引号 (PostgreSQL 14)

设置 safe_encoding
单位  
类别 版本和平台兼容性/以前的 PostgreSQL 版本
简短描述 设置是否允许在字符串文字中使用“\’”。
额外描述  
上下文 用户
变量类型 枚举
来源 默认值
最小值  
最大值  
枚举值 safe_encoding, on, off
引导值 safe_encoding
重置值 safe_encoding
源文件  
源代码行  
挂起重启 false

文档反斜杠引号

反斜杠引号 (PostgreSQL 13)

设置 safe_encoding
单位  
类别 版本和平台兼容性/以前的 PostgreSQL 版本
简短描述 设置是否允许在字符串文字中使用“\’”。
额外描述  
上下文 用户
变量类型 枚举
来源 默认值
最小值  
最大值  
枚举值 safe_encoding, on, off
引导值 safe_encoding
重置值 safe_encoding
源文件  
源代码行  
挂起重启 false

文档反斜杠引号

反斜杠引号 (PostgreSQL 12)

设置 safe_encoding
单位  
类别 版本和平台兼容性/以前的 PostgreSQL 版本
简短描述 设置是否允许在字符串文字中使用“\’”。
额外描述  
上下文 用户
变量类型 枚举
来源 默认值
最小值  
最大值  
枚举值 safe_encoding, on, off
引导值 safe_encoding
重置值 safe_encoding
源文件  
源代码行  
挂起重启 false

文档反斜杠引号

反斜杠引号 (PostgreSQL 11)

设置 safe_encoding
单位  
类别 版本和平台兼容性/以前的 PostgreSQL 版本
简短描述 设置是否允许在字符串文字中使用“\’”。
额外描述  
上下文 用户
变量类型 枚举
来源 默认值
最小值  
最大值  
枚举值 safe_encoding, on, off
引导值 safe_encoding
重置值 safe_encoding
源文件  
源代码行  
挂起重启 false

文档反斜杠引号

反斜杠引号 (PostgreSQL 10)

设置 safe_encoding
单位  
类别 版本和平台兼容性/以前的 PostgreSQL 版本
简短描述 设置是否允许在字符串文字中使用“\’”。
额外描述  
上下文 用户
变量类型 枚举
来源 默认值
最小值  
最大值  
枚举值 safe_encoding, on, off
引导值 safe_encoding
重置值 safe_encoding
源文件  
源代码行  
挂起重启 false

文档反斜杠引号

反斜杠引号 (PostgreSQL 9.6)

设置 safe_encoding
单位  
类别 版本和平台兼容性/以前的 PostgreSQL 版本
简短描述 设置是否允许在字符串文字中使用“\’”。
额外描述  
上下文 用户
变量类型 枚举
来源 默认值
最小值  
最大值  
枚举值 safe_encoding, on, off
引导值 safe_encoding
重置值 safe_encoding
源文件  
源代码行  
挂起重启 false

文档反斜杠引号

反斜杠引号 (PostgreSQL 9.5)

设置 safe_encoding
单位  
类别 版本和平台兼容性/以前的 PostgreSQL 版本
简短描述 设置是否允许在字符串文字中使用“\’”。
额外描述  
上下文 用户
变量类型 枚举
来源 默认值
最小值  
最大值  
枚举值 safe_encoding, on, off
引导值 safe_encoding
重置值 safe_encoding
源文件  
源代码行  
挂起重启 false

文档反斜杠引号

反斜杠引号 (PostgreSQL 9.4)

设置 safe_encoding
单位  
类别 版本和平台兼容性/以前的 PostgreSQL 版本
简短描述 设置是否允许在字符串文字中使用“\’”。
额外描述  
上下文 用户
变量类型 枚举
来源 默认值
最小值  
最大值  
枚举值 safe_encoding, on, off
引导值 safe_encoding
重置值 safe_encoding
源文件  
源代码行  

文档反斜杠引号

反斜杠引号 (PostgreSQL 9.3)

设置 safe_encoding
单位  
类别 版本和平台兼容性/以前的 PostgreSQL 版本
简短描述 设置是否允许在字符串文字中使用“\’”。
额外描述  
上下文 用户
变量类型 枚举
来源 默认值
最小值  
最大值  
枚举值 safe_encoding, on, off
引导值 safe_encoding
重置值 safe_encoding
源文件  
源代码行  

文档反斜杠引号

反斜杠引号 (PostgreSQL 9.2)

设置 safe_encoding
单位  
类别 版本和平台兼容性/以前的 PostgreSQL 版本
简短描述 设置是否允许在字符串文字中使用“\’”。
额外描述  
上下文 用户
变量类型 枚举
来源 默认值
最小值  
最大值  
枚举值 safe_encoding, on, off
引导值 safe_encoding
重置值 safe_encoding
源文件  
源代码行  

文档反斜杠引号

反斜杠引号 (PostgreSQL 9.1)

设置 safe_encoding
单位  
类别 版本和平台兼容性/以前的 PostgreSQL 版本
简短描述 设置是否允许在字符串文字中使用“\’”。
额外描述  
上下文 用户
变量类型 枚举
来源 默认值
最小值  
最大值  
枚举值 safe_encoding, on, off
引导值 safe_encoding
重置值 safe_encoding
源文件  
源代码行  

文档反斜杠引号

反斜杠引号 (PostgreSQL 9.0)

设置 safe_encoding
单位  
类别 版本和平台兼容性/以前的 PostgreSQL 版本
简短描述 设置是否允许在字符串文字中使用“\’”。
额外描述  
上下文 用户
变量类型 枚举
来源 默认值
最小值  
最大值  
枚举值 safe_encoding, on, off
引导值 safe_encoding
重置值 safe_encoding
源文件  
源代码行  

文档反斜杠引号

反斜杠引号 (PostgreSQL 8.4)

设置 safe_encoding
单位  
类别 版本和平台兼容性/以前的 PostgreSQL 版本
简短描述 设置是否允许在字符串文字中使用“\’”。
额外描述  
上下文 用户
变量类型 枚举
来源 默认值
最小值  
最大值  
枚举值 safe_encoding, on, off
引导值 safe_encoding
重置值 safe_encoding
源文件  
源代码行  

文档反斜杠引号

反斜杠引号 (PostgreSQL 8.3)

设置  
单位  
类别 版本和平台兼容性/以前的 PostgreSQL 版本
简短描述 设置是否允许在字符串文字中使用“\’”。
额外描述 有效值为 ON、OFF 和 SAFE_ENCODING。
上下文 用户
变量类型 字符串
来源 默认值
最小值  
最大值  

文档反斜杠引号

反斜杠引号 (PostgreSQL 8.2)

设置  
单位  
类别 版本和平台兼容性/以前的 PostgreSQL 版本
简短描述 设置是否允许在字符串文字中使用“\’”。
额外描述 有效值为 ON、OFF 和 SAFE_ENCODING。
上下文 用户
变量类型 字符串
来源 默认值
最小值  
最大值  

文档反斜杠引号

更改历史记录

示例

backslash_quote 的基本用法示例

postgres=# SHOW backslash_quote;
 backslash_quote 
-----------------
 safe_encoding
(1 row)

postgres=# SELECT E'hello \'world\'!';
    ?column?    
----------------
 hello 'world'!
(1 row)

postgres=# SET backslash_quote TO off;
SET
postgres=# SELECT E'hello \'world\'!';
ERROR:  unsafe use of \' in a string literal
LINE 1: SELECT E'hello \'world\'!';
               ^
HINT:  Use '' to write quotes in strings. \' is insecure in client-only encodings.

分类

向后兼容性GUC 配置项字符串操作

另请参阅

standard_conforming_stringsescape_string_warning

反馈

提交关于“backslash_quote”的任何意见、建议或更正 此处