反斜杠引号

一个 GUC,用于控制通过 \' 表示引号标记。

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

backslash_quotePostgreSQL 8.2 中添加。

默认值

backslash_quote 的默认值为:safe_encoding

用法

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

SELECT 'hello ''world''!'

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

SELECT 'hello \'world\'!'

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

backslash_quote 可以设置为以下值之一

  • 开启
  • 关闭
  • 安全编码

开启 意味着 \' 将在所有情况下都被接受,

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

安全编码(默认值)意味着 \' 仅在客户端编码不允许在多字节字符中使用 ASCII \ 时才会被接受。

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

按 PostgreSQL 版本分列的详细信息

反斜杠引号 (PostgreSQL 17)

设置 安全编码
单位  
类别 版本和平台兼容性/以前的 PostgreSQL 版本
简短描述 设置是否允许在字符串文字中使用“\’”。
额外描述  
上下文 用户
变量类型 枚举
来源 默认值
最小值  
最大值  
枚举值 安全编码、开启、关闭
启动值 安全编码
重置值 安全编码
源文件  
源代码行  
挂起重启 错误

文档反斜杠引号

反斜杠引号 (PostgreSQL 16)

设置 安全编码
单位  
类别 版本和平台兼容性/以前的 PostgreSQL 版本
简短描述 设置是否允许在字符串文字中使用“\’”。
额外描述  
上下文 用户
变量类型 枚举
来源 默认值
最小值  
最大值  
枚举值 安全编码、开启、关闭
启动值 安全编码
重置值 安全编码
源文件  
源代码行  
挂起重启 错误

文档反斜杠引号

反斜杠引号 (PostgreSQL 15)

设置 安全编码
单位  
类别 版本和平台兼容性/以前的 PostgreSQL 版本
简短描述 设置是否允许在字符串文字中使用“\’”。
额外描述  
上下文 用户
变量类型 枚举
来源 默认值
最小值  
最大值  
枚举值 安全编码、开启、关闭
启动值 安全编码
重置值 安全编码
源文件  
源代码行  
挂起重启 错误

文档反斜杠引号

反斜杠引号 (PostgreSQL 14)

设置 安全编码
单位  
类别 版本和平台兼容性/以前的 PostgreSQL 版本
简短描述 设置是否允许在字符串文字中使用“\’”。
额外描述  
上下文 用户
变量类型 枚举
来源 默认值
最小值  
最大值  
枚举值 安全编码、开启、关闭
启动值 安全编码
重置值 安全编码
源文件  
源代码行  
挂起重启 错误

文档反斜杠引号

反斜杠引号 (PostgreSQL 13)

设置 安全编码
单位  
类别 版本和平台兼容性/以前的 PostgreSQL 版本
简短描述 设置是否允许在字符串文字中使用“\’”。
额外描述  
上下文 用户
变量类型 枚举
来源 默认值
最小值  
最大值  
枚举值 安全编码、开启、关闭
启动值 安全编码
重置值 安全编码
源文件  
源代码行  
挂起重启 错误

文档反斜杠引号

反斜杠引号 (PostgreSQL 12)

设置 安全编码
单位  
类别 版本和平台兼容性/以前的 PostgreSQL 版本
简短描述 设置是否允许在字符串文字中使用“\’”。
额外描述  
上下文 用户
变量类型 枚举
来源 默认值
最小值  
最大值  
枚举值 安全编码、开启、关闭
启动值 安全编码
重置值 安全编码
源文件  
源代码行  
挂起重启 错误

文档反斜杠引号

反斜杠引号 (PostgreSQL 11)

设置 安全编码
单位  
类别 版本和平台兼容性/以前的 PostgreSQL 版本
简短描述 设置是否允许在字符串文字中使用“\’”。
额外描述  
上下文 用户
变量类型 枚举
来源 默认值
最小值  
最大值  
枚举值 安全编码、开启、关闭
启动值 安全编码
重置值 安全编码
源文件  
源代码行  
挂起重启 错误

文档反斜杠引号

反斜杠引号 (PostgreSQL 10)

设置 安全编码
单位  
类别 版本和平台兼容性/以前的 PostgreSQL 版本
简短描述 设置是否允许在字符串文字中使用“\’”。
额外描述  
上下文 用户
变量类型 枚举
来源 默认值
最小值  
最大值  
枚举值 安全编码、开启、关闭
启动值 安全编码
重置值 安全编码
源文件  
源代码行  
挂起重启 错误

文档反斜杠引号

反斜杠引号 (PostgreSQL 9.6)

设置 安全编码
单位  
类别 版本和平台兼容性/以前的 PostgreSQL 版本
简短描述 设置是否允许在字符串文字中使用“\’”。
额外描述  
上下文 用户
变量类型 枚举
来源 默认值
最小值  
最大值  
枚举值 安全编码、开启、关闭
启动值 安全编码
重置值 安全编码
源文件  
源代码行  
挂起重启 错误

文档反斜杠引号

反斜杠引号 (PostgreSQL 9.5)

设置 安全编码
单位  
类别 版本和平台兼容性/以前的 PostgreSQL 版本
简短描述 设置是否允许在字符串文字中使用“\’”。
额外描述  
上下文 用户
变量类型 枚举
来源 默认值
最小值  
最大值  
枚举值 安全编码、开启、关闭
启动值 安全编码
重置值 安全编码
源文件  
源代码行  
挂起重启 错误

文档反斜杠引号

反斜杠引号 (PostgreSQL 9.4)

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

文档反斜杠引号

反斜杠引号 (PostgreSQL 9.3)

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

文档反斜杠引号

反斜杠引号 (PostgreSQL 9.2)

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

文档反斜杠引号

反斜杠引号 (PostgreSQL 9.1)

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

文档反斜杠引号

反斜杠引号 (PostgreSQL 9.0)

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

文档反斜杠引号

反斜杠引号 (PostgreSQL 8.4)

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

文档反斜杠引号

反斜杠引号 (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”的评论、建议或更正 此处