You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by du...@apache.org on 2021/05/12 09:29:18 UTC

[shardingsphere] branch master updated: Move queryWithCipherColumn configuration from props to encrypt rule (#10313)

This is an automated email from the ASF dual-hosted git repository.

duanzhengqiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 3aedaaa  Move queryWithCipherColumn configuration from props to encrypt rule (#10313)
3aedaaa is described below

commit 3aedaaa99634e7e7a5d0a182db749f537873aa5f
Author: Liang Zhang <te...@163.com>
AuthorDate: Wed May 12 17:28:54 2021 +0800

    Move queryWithCipherColumn configuration from props to encrypt rule (#10313)
    
    * Move queryWithCipherColumn configuration from props to encrypt rule
    
    * Update spring namespace
    
    * Update docs
---
 .../content/features/encrypt/principle.cn.md       | 13 +++++------
 .../content/features/encrypt/principle.en.md       | 13 +++++------
 .../test-engine/performance-test-sysbench.cn.md    |  1 -
 .../test-engine/performance-test-sysbench.en.md    |  1 -
 .../features/test-engine/performance-test.cn.md    |  2 --
 .../features/test-engine/performance-test.en.md    |  4 +---
 .../configuration/java-api/encrypt.cn.md           |  9 ++++----
 .../configuration/java-api/encrypt.en.md           |  9 ++++----
 .../configuration/java-api/mix.cn.md               |  1 -
 .../configuration/java-api/mix.en.md               |  1 -
 .../shardingsphere-jdbc/configuration/props.cn.md  | 17 +++++++-------
 .../shardingsphere-jdbc/configuration/props.en.md  |  1 -
 .../spring-boot-starter/encrypt.cn.md              |  2 ++
 .../spring-boot-starter/encrypt.en.md              |  2 ++
 .../configuration/spring-namespace/encrypt.cn.md   |  9 ++++----
 .../configuration/spring-namespace/encrypt.en.md   |  9 ++++----
 .../configuration/spring-namespace/mix.cn.md       |  2 --
 .../configuration/spring-namespace/mix.en.md       |  2 --
 .../configuration/yaml/encrypt.cn.md               |  3 +--
 .../configuration/yaml/encrypt.en.md               |  3 +--
 .../configuration/yaml/mix.cn.md                   |  1 -
 .../configuration/yaml/mix.en.md                   |  1 -
 .../usage/governance/spring-namespace.cn.md        |  6 +----
 .../usage/governance/spring-namespace.en.md        |  6 +----
 .../shardingsphere-proxy/configuration/props.cn.md | 23 +++++++++----------
 .../shardingsphere-proxy/configuration/props.en.md |  3 +--
 .../META-INF/zookeeper/local/encrypt.yaml          |  1 -
 .../zookeeper/local/application-encrypt.xml        |  6 +----
 .../jdbc/config/EncryptDatabasesConfiguration.java |  1 -
 .../main/resources/META-INF/encrypt-databases.yaml |  3 ---
 .../META-INF/application-encrypt-databases.xml     |  6 +----
 .../EncryptShadowDatabasesConfiguration.java       |  1 -
 .../META-INF/encrypt-shadow-databases.yaml         |  1 -
 .../application-encrypt-shadow-databases.xml       |  7 +-----
 .../src/main/resources/conf/server.yaml            |  1 -
 .../src/main/resources/conf/server.yaml            |  1 -
 .../src/main/resources/conf/server.yaml            |  1 -
 .../api/config/EncryptRuleConfiguration.java       |  6 +++++
 .../AlgorithmProvidedEncryptRuleConfiguration.java |  2 ++
 .../shardingsphere/encrypt/rule/EncryptRule.java   |  6 +++++
 .../yaml/config/YamlEncryptRuleConfiguration.java  |  2 ++
 ...eAlgorithmProviderConfigurationYamlSwapper.java |  2 ++
 .../EncryptRuleConfigurationYamlSwapper.java       |  3 ++-
 .../encrypt/rule/EncryptRuleTest.java              |  4 ++--
 ...orithmProviderConfigurationYamlSwapperTest.java |  2 +-
 .../merge/EncryptResultDecoratorEngine.java        |  9 ++++----
 .../merge/EncryptResultDecoratorEngineTest.java    | 26 +++++++---------------
 .../context/EncryptSQLRewriteContextDecorator.java |  6 ++---
 .../resources/yaml/encrypt/query-with-cipher.yaml  |  3 ---
 .../resources/yaml/encrypt/query-with-plain.yaml   |  4 +---
 .../boot/EncryptRuleSpringBootConfiguration.java   |  1 +
 .../parser/EncryptRuleBeanDefinitionParser.java    |  1 +
 .../tag/EncryptRuleBeanDefinitionTag.java          |  2 ++
 .../main/resources/META-INF/namespace/encrypt.xsd  |  1 +
 .../test/resources/yaml/mix/query-with-cipher.yaml |  3 ---
 .../test/resources/yaml/mix/query-with-plain.yaml  |  4 +---
 .../properties/ConfigurationPropertyKey.java       |  5 -----
 .../properties/ConfigurationPropertiesTest.java    |  3 ---
 .../src/test/resources/config/config-calcite.yaml  |  1 -
 .../config/config-encrypt-query-with-plain.yaml    |  2 +-
 .../governance/GovernanceEncryptNamespaceTest.java |  3 ---
 .../resources/META-INF/rdb/encrypt-governance.xml  |  1 -
 .../namespace/encrypt-data-source-namespace.xml    |  2 +-
 .../src/main/resources/conf/server.yaml            |  1 -
 .../test/resources/docker/proxy/conf/server.yaml   |  1 -
 .../resources/docker/db/proxy/conf/server.yaml     |  1 -
 .../proxy/conf/server.yaml                         |  1 -
 .../proxy/conf/server.yaml                         |  1 -
 .../docker/encrypt/proxy/conf/server.yaml          |  1 -
 .../readwrite_splitting/proxy/conf/server.yaml     |  1 -
 .../sharding_governance/proxy/conf/server.yaml     |  1 -
 .../resources/docker/tbl/proxy/conf/server.yaml    |  1 -
 .../rules.yaml                                     |  2 --
 .../src/test/resources/env/encrypt/rules.yaml      |  2 --
 74 files changed, 108 insertions(+), 182 deletions(-)

diff --git a/docs/document/content/features/encrypt/principle.cn.md b/docs/document/content/features/encrypt/principle.cn.md
index 3ddcd96..a56e0c1 100644
--- a/docs/document/content/features/encrypt/principle.cn.md
+++ b/docs/document/content/features/encrypt/principle.cn.md
@@ -125,14 +125,13 @@ Apache ShardingSphere 接收到该 SQL,通过用户提供的加密配置,发
           plainColumn: pwd
           cipherColumn: pwd_cipher
           encryptorName: aes_encryptor
-props:
-  query-with-cipher-column: false
+  queryWithCipherColumn: false
 ```
 
 依据上述加密规则可知,首先需要在数据库表 `t_user` 里新增一个字段叫做 `pwd_cipher`,即 cipherColumn,用于存放密文数据,同时我们把 plainColumn 设置为 `pwd`,用于存放明文数据,而把 logicColumn 也设置为 `pwd`。
 由于之前的代码 SQL 就是使用 `pwd` 进行编写,即面向逻辑列进行 SQL 编写,所以业务代码无需改动。
 通过 Apache ShardingSphere,针对新增的数据,会把明文写到pwd列,并同时把明文进行加密存储到 `pwd_cipher` 列。
-此时,由于 `query-with-cipher-column` 设置为 false,对业务应用来说,依旧使用 `pwd` 这一明文列进行查询存储,却在底层数据库表 `pwd_cipher` 上额外存储了新增数据的密文数据,其处理流程如下图所示:
+此时,由于 `queryWithCipherColumn` 设置为 false,对业务应用来说,依旧使用 `pwd` 这一明文列进行查询存储,却在底层数据库表 `pwd_cipher` 上额外存储了新增数据的密文数据,其处理流程如下图所示:
 
 ![6](https://shardingsphere.apache.org/document/current/img/encrypt/6.png)
 
@@ -142,15 +141,15 @@ props:
 2. 系统迁移中
 
 新增的数据已被 Apache ShardingSphere 将密文存储到密文列,明文存储到明文列;历史数据被业务方自行加密清洗后,将密文也存储到密文列。
-也就是说现在的数据库里即存放着明文也存放着密文,只是由于配置项中的 query-with-cipher-column=false,所以密文一直没有被使用过。
-现在我们为了让系统能切到密文数据进行查询,需要将加密配置中的query-with-cipher-column设置为true。
+也就是说现在的数据库里即存放着明文也存放着密文,只是由于配置项中的 `queryWithCipherColumn = false`,所以密文一直没有被使用过。
+现在我们为了让系统能切到密文数据进行查询,需要将加密配置中的 queryWithCipherColumn 设置为 true。
 在重启系统后,我们发现系统业务一切正常,但是 Apache ShardingSphere 已经开始从数据库里取出密文列的数据,解密后返回给用户;
 而对于用户的增删改需求,则依旧会把原文数据存储到明文列,加密后密文数据存储到密文列。
 
 虽然现在业务系统通过将密文列的数据取出,解密后返回;但是,在存储的时候仍旧会存一份原文数据到明文列,这是为什么呢?
 答案是:为了能够进行系统回滚。
 **因为只要密文和明文永远同时存在,我们就可以通过开关项配置自由将业务查询切换到 cipherColumn 或 plainColumn。**
-也就是说,如果将系统切到密文列进行查询时,发现系统报错,需要回滚。那么只需将 query-with-cipher-column=false,Apache ShardingSphere 将会还原,即又重新开始使用 plainColumn 进行查询。
+也就是说,如果将系统切到密文列进行查询时,发现系统报错,需要回滚。那么只需将 `queryWithCipherColumn = false`,Apache ShardingSphere 将会还原,即又重新开始使用 plainColumn 进行查询。
 处理流程如下图所示:
 
 ![7](https://shardingsphere.apache.org/document/current/img/encrypt/7.png)
@@ -179,8 +178,6 @@ props:
         pwd: # pwd 与 pwd_cipher 的转换映射
           cipherColumn: pwd_cipher
           encryptorName: aes_encryptor
-props:
-  query-with-cipher-column: true
 ```
 
 其处理流程如下:
diff --git a/docs/document/content/features/encrypt/principle.en.md b/docs/document/content/features/encrypt/principle.en.md
index 1213ef1..ae37de8 100644
--- a/docs/document/content/features/encrypt/principle.en.md
+++ b/docs/document/content/features/encrypt/principle.en.md
@@ -163,15 +163,14 @@ In addition, demonstrate a set of encryption configuration rules, as follows:
           plainColumn: pwd
           cipherColumn: pwd_cipher
           encryptorName: aes_encryptor
-props:
-  query-with-cipher-column: false
+  queryWithCipherColumn: false
 ```
 
 According to the above encryption rules, we need to add a column called pwd_cipher in the t_user table, that is, cipherColumn, which is used to store ciphertext data. 
 At the same time, we set plainColumn to pwd, which is used to store plaintext data, and logicColumn is also set to pwd. 
 Because the previous SQL was written using pwd, that is, the SQL was written for logical columns, so the business code did not need to be changed. 
 Through Apache ShardingSphere, for the incremental data, the plain text will be written to the pwd column, and the plain text will be encrypted and stored in the pwd_cipher column. 
-At this time, because query-with-cipher-column is set to false, for business applications, the plain text column of pwd is still used for query storage, 
+At this time, because `queryWithCipherColumn` is set to false, for business applications, the plain text column of pwd is still used for query storage, 
 but the cipher text data of the new data is additionally stored on the underlying database table pwd_cipher. The processing flow is shown below:
 
 ![6](https://shardingsphere.apache.org/document/current/img/encrypt/6_en.png)
@@ -184,8 +183,8 @@ Now it is necessary to process historical plaintext inventory data.
 
 The incremental data has been stored by Apache ShardingSphere in the ciphertext column and the plaintext is stored in the plaintext column; after the historical data is encrypted and cleaned by the business party itself, 
 the ciphertext is also stored in the ciphertext column. That is to say, the plaintext and the ciphertext are stored in the current database. 
-Since the `query-with-cipher-column = false` in the configuration item, the ciphertext has never been used. 
-Now we need to set the `query-with-cipher-column` in the encryption configuration to true in order for the system to cut the ciphertext data for query. 
+Since the `queryWithCipherColumn = false` in the configuration item, the ciphertext has never been used. 
+Now we need to set the `queryWithCipherColumn` in the encryption configuration to true in order for the system to cut the ciphertext data for query. 
 After restarting the system, we found that the system business is normal, but Apache ShardingSphere has started to extract the ciphertext data from the database, 
 decrypt it and return it to the user; and for the user's insert, delete and update requirements, 
 the original data will still be stored The plaintext column, the encrypted ciphertext data is stored in the ciphertext column.
@@ -195,7 +194,7 @@ however, it will still save a copy of the original data to the plaintext column
 Why? The answer is: in order to be able to roll back the system. 
 **Because as long as the ciphertext and plaintext always exist at the same time, we can freely switch the business query to cipherColumn or plainColumn through the configuration of the switch item.** 
 In other words, if the system is switched to the ciphertext column for query, the system reports an error and needs to be rolled back. 
-Then just set query-with-cipher-column = false, Apache ShardingSphere will restore, that is, start using plainColumn to query again. 
+Then just set `queryWithCipherColumn = false`, Apache ShardingSphere will restore, that is, start using plainColumn to query again. 
 The processing flow is shown in the following figure:
 
 ![7](https://shardingsphere.apache.org/document/current/img/encrypt/7_en.png)
@@ -229,8 +228,6 @@ So the encryption configuration after migration is:
         pwd: # pwd与pwd_cipher的转换映射
           cipherColumn: pwd_cipher
           encryptorName: aes_encryptor
-props:
-  query-with-cipher-column: true
 ```
 
 The processing flow is as follows:
diff --git a/docs/document/content/features/test-engine/performance-test-sysbench.cn.md b/docs/document/content/features/test-engine/performance-test-sysbench.cn.md
index 684d349..1e957f6 100644
--- a/docs/document/content/features/test-engine/performance-test-sysbench.cn.md
+++ b/docs/document/content/features/test-engine/performance-test-sysbench.cn.md
@@ -317,7 +317,6 @@ props:
   proxy-transaction-type: LOCAL
   proxy-opentracing-enabled: false
   proxy-hint-enabled: false
-  query-with-cipher-column: true
   sql-show: false
   check-table-metadata-enabled: false
   lock-wait-timeout-milliseconds: 50000 # The maximum time to wait for a lock
diff --git a/docs/document/content/features/test-engine/performance-test-sysbench.en.md b/docs/document/content/features/test-engine/performance-test-sysbench.en.md
index 5c4400b..d71ebb3 100644
--- a/docs/document/content/features/test-engine/performance-test-sysbench.en.md
+++ b/docs/document/content/features/test-engine/performance-test-sysbench.en.md
@@ -317,7 +317,6 @@ props:
   proxy-transaction-type: LOCAL
   proxy-opentracing-enabled: false
   proxy-hint-enabled: false
-  query-with-cipher-column: true
   sql-show: false
   check-table-metadata-enabled: false
   lock-wait-timeout-milliseconds: 50000 # The maximum time to wait for a lock
diff --git a/docs/document/content/features/test-engine/performance-test.cn.md b/docs/document/content/features/test-engine/performance-test.cn.md
index ddc9cb4..b376e15 100644
--- a/docs/document/content/features/test-engine/performance-test.cn.md
+++ b/docs/document/content/features/test-engine/performance-test.cn.md
@@ -302,8 +302,6 @@ rules:
         pad:
           cipherColumn: pad_cipher
           encryptorName: md5_encryptor
-props:
-  query-with-cipher-column: true
 ```
 
 #### 全路由
diff --git a/docs/document/content/features/test-engine/performance-test.en.md b/docs/document/content/features/test-engine/performance-test.en.md
index 84f7d4e..313844d 100644
--- a/docs/document/content/features/test-engine/performance-test.en.md
+++ b/docs/document/content/features/test-engine/performance-test.en.md
@@ -302,9 +302,7 @@ rules:
           encryptorName: aes_encryptor
         pad:
           cipherColumn: pad_cipher
-          encryptorName: md5_encryptor
-props:
-  query-with-cipher-column: true    
+          encryptorName: md5_encryptor    
 ```
 
 #### Full Route Configuration
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/java-api/encrypt.cn.md b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/java-api/encrypt.cn.md
index 134b613d..bdbb0dec 100644
--- a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/java-api/encrypt.cn.md
+++ b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/java-api/encrypt.cn.md
@@ -9,10 +9,11 @@ weight = 3
 
 可配置属性:
 
-| *名称*          | *数据类型*                                           | *说明*             |
-| -------------- | --------------------------------------------------- | ------------------ |
-| tables (+)     | Collection\<EncryptTableRuleConfiguration\>         | 加密表规则配置       |
-| encryptors (+) | Map\<String, ShardingSphereAlgorithmConfiguration\> | 加解密算法名称和配置 |
+| *名称*                     | *数据类型*                                           | *说明*                                                 | *默认值* |
+| ------------------------- | --------------------------------------------------- | ----------------------------------------------------- | ------- |
+| tables (+)                | Collection\<EncryptTableRuleConfiguration\>         | 加密表规则配置                                           |        |
+| encryptors (+)            | Map\<String, ShardingSphereAlgorithmConfiguration\> | 加解密算法名称和配置                                      |        |
+| queryWithCipherColumn (?) | boolean                                             | 是否使用加密列进行查询。在有原文列的情况下,可以使用原文列进行查询 | true   |
 
 ## 加密表规则配置
 
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/java-api/encrypt.en.md b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/java-api/encrypt.en.md
index c7dcd5e..6fb6155 100644
--- a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/java-api/encrypt.en.md
+++ b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/java-api/encrypt.en.md
@@ -9,10 +9,11 @@ Class name: org.apache.shardingsphere.encrypt.api.config.EncryptRuleConfiguratio
 
 Attributes:
 
-| *Name*         | *DataType*                                          | *Description*                             |
-| -------------- | --------------------------------------------------- | ----------------------------------------- |
-| tables (+)     | Collection\<EncryptTableRuleConfiguration\>         | Encrypt table rule configurations         |
-| encryptors (+) | Map\<String, ShardingSphereAlgorithmConfiguration\> | Encrypt algorithm name and configurations |
+| *Name*                    | *DataType*                                          | *Description*                                                                                  | *Default Value* |
+| ------------------------- | --------------------------------------------------- | ---------------------------------------------------------------------------------------------- | --------------- |
+| tables (+)                | Collection\<EncryptTableRuleConfiguration\>         | Encrypt table rule configurations                                                              |                 |
+| encryptors (+)            | Map\<String, ShardingSphereAlgorithmConfiguration\> | Encrypt algorithm name and configurations                                                      |                 |
+| queryWithCipherColumn (?) | boolean                                             | Whether query with cipher column for data encrypt. User you can use plaintext to query if have | true            |
 
 ## Encrypt Table Rule Configuration
 
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/java-api/mix.cn.md b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/java-api/mix.cn.md
index 5a6de7a..f880948 100644
--- a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/java-api/mix.cn.md
+++ b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/java-api/mix.cn.md
@@ -99,7 +99,6 @@ ReadwriteSplittingRuleConfiguration readWriteSplittingyRuleConfiguration = new R
 /* 其他配置 */
 Properties otherProperties = new Properties();
 otherProperties.setProperty("sql-show", "true");
-otherProperties.setProperty("query-with-cipher-column", "true");
 
 /* shardingDataSource 就是最终被ORM框架或其他jdbc框架引用的数据源名称 */
 DataSource shardingDataSource = ShardingSphereDataSourceFactory.createDataSource(datasourceMaps, Arrays.asList(shardingRuleConfiguration, readWriteSplittingyRuleConfiguration, encryptRuleConfiguration), otherProperties);
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/java-api/mix.en.md b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/java-api/mix.en.md
index 728e499..51dfaa2 100644
--- a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/java-api/mix.en.md
+++ b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/java-api/mix.en.md
@@ -95,7 +95,6 @@ ReadwriteSplittingRuleConfiguration readWriteSplittingRuleConfiguration = new Re
 /* Other Properties configuration */
 Properties otherProperties = new Properties();
 otherProperties.setProperty("sql-show", "true");
-otherProperties.setProperty("query-with-cipher-column", "true");
 
 /* The variable `shardingDataSource` is the logic data source referenced by other frameworks(such as ORM, JPA, etc.) */
 DataSource shardingDataSource = ShardingSphereDataSourceFactory.createDataSource(datasourceMaps, Arrays.asList(shardingRuleConfiguration, readWriteSplittingRuleConfiguration, encryptRuleConfiguration), otherProperties);
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/props.cn.md b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/props.cn.md
index ed067b9..4368e38 100644
--- a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/props.cn.md
+++ b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/props.cn.md
@@ -10,12 +10,11 @@ Apache ShardingSphere 提供属性配置的方式配置系统级配置。
 
 ## 配置项说明
 
-| *名称*                             | *数据类型*   | *说明*                                                                                                                                                                                  | *默认值*  |
-| ---------------------------------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- |
-| sql-show (?)                       | boolean     | 是否在日志中打印 SQL。 <br /> 打印 SQL 可以帮助开发者快速定位系统问题。日志内容包含:逻辑 SQL,真实 SQL 和 SQL 解析结果。<br /> 如果开启配置,日志将使用 Topic `ShardingSphere-SQL`,日志级别是 INFO。 | false    |
-| sql-simple (?)                     | boolean     | 是否在日志中打印简单风格的 SQL。                                                                                                                                                           | false    |
-| executor-size (?)                  | int         | 用于设置任务处理线程池的大小。每个 ShardingSphereDataSource 使用一个独立的线程池,同一个 JVM 的不同数据源不共享线程池。                                                                           | infinite |
-| max-connections-size-per-query (?) | int         | 一次查询请求在每个数据库实例中所能使用的最大连接数。                                                                                                                                          | 1        |
-| check-table-metadata-enabled (?)   | boolean     | 是否在程序启动和更新时检查分片元数据的结构一致性。                                                                                                                                            | false    |
-| query-with-cipher-column (?)       | boolean     | 是否使用加密列进行查询。在有原文列的情况下,可以使用原文列进行查询。                                                                                                                            | true     |
-| xa-transaction-manager-type (?)    | String      | XA 事务管理器类型。列如:Atomikos,Narayana,Bitronix                                                                                                                                      | Atomikos |
+| *名称*                             | *数据类型*   | *说明*                                                                                                                                                                          | *默认值*  |
+| ---------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------- |
+| sql-show (?)                       | boolean    | 是否在日志中打印 SQL。 <br /> 打印 SQL 可以帮助开发者快速定位系统问题。日志内容包含:逻辑 SQL,真实 SQL 和 SQL 解析结果。<br /> 如果开启配置,日志将使用 Topic `ShardingSphere-SQL`,日志级别是 INFO。 | false    |
+| sql-simple (?)                     | boolean    | 是否在日志中打印简单风格的 SQL。                                                                                                                                                    | false    |
+| executor-size (?)                  | int        | 用于设置任务处理线程池的大小。每个 ShardingSphereDataSource 使用一个独立的线程池,同一个 JVM 的不同数据源不共享线程池。                                                                         | infinite |
+| max-connections-size-per-query (?) | int        | 一次查询请求在每个数据库实例中所能使用的最大连接数。                                                                                                                                     | 1        |
+| check-table-metadata-enabled (?)   | boolean    | 是否在程序启动和更新时检查分片元数据的结构一致性。                                                                                                                                       | false    |
+| xa-transaction-manager-type (?)    | String     | XA 事务管理器类型。列如:Atomikos,Narayana,Bitronix                                                                                                                               | Atomikos |
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/props.en.md b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/props.en.md
index 5edf153..bb623f1 100644
--- a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/props.en.md
+++ b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/props.en.md
@@ -17,5 +17,4 @@ Apache ShardingSphere provides the way of property configuration to configure sy
 | executor-size (?)                  | int         | The max thread size of worker group to execute SQL. One ShardingSphereDataSource will use a independent thread pool, it does not share thread pool even different data source in same JVM.                                                                   | infinite        |
 | max-connections-size-per-query (?) | int         | Max opened connection size for each query.                                                                                                                                                                                                                   | 1               |
 | check-table-metadata-enabled (?)   | boolean     | Whether validate table meta data consistency when application startup or updated.                                                                                                                                                                            | false           |
-| query-with-cipher-column (?)       | boolean     | Whether query with cipher column for data encrypt. User you can use plaintext to query if have.                                                                                                                                                              | true            |
 | xa-transaction-manager-type (?)    | String      | XA Transaction manager type. Include: Atomikos, Narayana and Bitronix.                                                                                                                                                                                       | Atomikos        |
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-boot-starter/encrypt.cn.md b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-boot-starter/encrypt.cn.md
index 1747e22..fdcc772 100644
--- a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-boot-starter/encrypt.cn.md
+++ b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-boot-starter/encrypt.cn.md
@@ -16,6 +16,8 @@ spring.shardingsphere.rules.encrypt.tables.<table-name>.columns.<column-name>.en
 # 加密算法配置
 spring.shardingsphere.rules.encrypt.encryptors.<encrypt-algorithm-name>.type= # 加密算法类型
 spring.shardingsphere.rules.encrypt.encryptors.<encrypt-algorithm-name>.props.xxx= # 加密算法属性配置
+
+spring.shardingsphere.rules.encrypt.queryWithCipherColumn= # 是否使用加密列进行查询。在有原文列的情况下,可以使用原文列进行查询
 ```
 
 算法类型的详情,请参见[内置加密算法列表](/cn/user-manual/shardingsphere-jdbc/configuration/built-in-algorithm/encrypt)。
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-boot-starter/encrypt.en.md b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-boot-starter/encrypt.en.md
index 5ea0f4c..7b4535f 100644
--- a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-boot-starter/encrypt.en.md
+++ b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-boot-starter/encrypt.en.md
@@ -16,6 +16,8 @@ spring.shardingsphere.rules.encrypt.tables.<table-name>.columns.<column-name>.en
 # Encrypt algorithm configuration
 spring.shardingsphere.rules.encrypt.encryptors.<encrypt-algorithm-name>.type= # Encrypt algorithm type
 spring.shardingsphere.rules.encrypt.encryptors.<encrypt-algorithm-name>.props.xxx= # Encrypt algorithm properties
+
+spring.shardingsphere.rules.encrypt.queryWithCipherColumn= # Whether query with cipher column for data encrypt. User you can use plaintext to query if have
 ```
 
 Please refer to [Built-in Encrypt Algorithm List](/en/user-manual/shardingsphere-jdbc/configuration/built-in-algorithm/encrypt) for more details about type of algorithm.
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-namespace/encrypt.cn.md b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-namespace/encrypt.cn.md
index fdc0359..eb755b0 100644
--- a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-namespace/encrypt.cn.md
+++ b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-namespace/encrypt.cn.md
@@ -9,10 +9,11 @@ weight = 3
 
 \<encrypt:rule />
 
-| *名称*    | *类型* | *说明*         |
-| --------- | ----- | ------------- |
-| id        | 属性  | Spring Bean Id |
-| table (+) | 标签  | 加密表配置      |
+| *名称*                     | *类型* | *说明*                                               | *默认值* |
+| ------------------------- | ----- | ---------------------------------------------------- | ------- |
+| id                        | 属性  | Spring Bean Id                                        |         |
+| queryWithCipherColumn (?) | 属性  | 是否使用加密列进行查询。在有原文列的情况下,可以使用原文列进行查询 | true   |
+| table (+)                 | 标签  | 加密表配置                                              |         |
 
 \<encrypt:table />
 
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-namespace/encrypt.en.md b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-namespace/encrypt.en.md
index fd8eec5..8fcd358 100644
--- a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-namespace/encrypt.en.md
+++ b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-namespace/encrypt.en.md
@@ -9,10 +9,11 @@ Namespace: [http://shardingsphere.apache.org/schema/shardingsphere/encrypt/encry
 
 \<encrypt:rule />
 
-| *Name*    | *Type*    | *Description*               |
-| --------- | --------- | --------------------------- |
-| id        | Attribute | Spring Bean Id              |
-| table (+) | Tag       | Encrypt table configuration |
+| *Name*                    | *Type*    | *Description*                                                                                  | *Default Value* |
+| ------------------------- | --------- | ---------------------------------------------------------------------------------------------- | --------------- |
+| id                        | Attribute | Spring Bean Id                                                                                 |                 |
+| queryWithCipherColumn (?) | Attribute | Whether query with cipher column for data encrypt. User you can use plaintext to query if have | true            |
+| table (+)                 | Tag       | Encrypt table configuration                                                                    |                 |
 
 \<encrypt:table />
 
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-namespace/mix.cn.md b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-namespace/mix.cn.md
index 7d22bd8..69a4ceb 100644
--- a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-namespace/mix.cn.md
+++ b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-namespace/mix.cn.md
@@ -124,10 +124,8 @@ weight = 6
     <shardingsphere:data-source id="readQueryDataSource" data-source-names="write_ds0, read_ds0_0, read_ds0_1, write_ds1, read_ds1_0, read_ds1_1" 
         rule-refs="readWriteSplittingRule, shardingRule, encryptRule" >
         <props>
-            <prop key="query-with-cipher-column">true</prop>
             <prop key="sql-show">true</prop>
         </props>
     </shardingsphere:data-source>
-    
 </beans>
 ```
\ No newline at end of file
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-namespace/mix.en.md b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-namespace/mix.en.md
index dfb35fe..1fde361 100644
--- a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-namespace/mix.en.md
+++ b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-namespace/mix.en.md
@@ -119,10 +119,8 @@ weight = 6
     <shardingsphere:data-source id="readQueryDataSource" data-source-names="write_ds0, read_ds0_0, read_ds0_1, write_ds1, read_ds1_0, read_ds1_1" 
         rule-refs="readWriteSplittingRule, shardingRule, encryptRule" >
         <props>
-            <prop key="query-with-cipher-column">true</prop>
             <prop key="sql-show">true</prop>
         </props>
     </shardingsphere:data-source>
-  
 </beans>
 ```
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/yaml/encrypt.cn.md b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/yaml/encrypt.cn.md
index e990258..26b87eb 100644
--- a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/yaml/encrypt.cn.md
+++ b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/yaml/encrypt.cn.md
@@ -26,8 +26,7 @@ rules:
       props: # 加解密算法属性配置
         # ...
 
-props:
-  # ...
+  queryWithCipherColumn: # 是否使用加密列进行查询。在有原文列的情况下,可以使用原文列进行查询
 ```
 
 算法类型的详情,请参见[内置加密算法列表](/cn/user-manual/shardingsphere-jdbc/configuration/built-in-algorithm/encrypt)。
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/yaml/encrypt.en.md b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/yaml/encrypt.en.md
index c34e18f..c77a0b0 100644
--- a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/yaml/encrypt.en.md
+++ b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/yaml/encrypt.en.md
@@ -26,8 +26,7 @@ rules:
       props: # Encrypt algorithm properties
         # ...
 
-props:
-  # ...
+  queryWithCipherColumn: # Whether query with cipher column for data encrypt. User you can use plaintext to query if have
 ```
 
 Please refer to [Built-in Encrypt Algorithm List](/en/user-manual/shardingsphere-jdbc/configuration/built-in-algorithm/encrypt) for more details about type of algorithm.
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/yaml/mix.cn.md b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/yaml/mix.cn.md
index 775c9b6..1e48d68 100644
--- a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/yaml/mix.cn.md
+++ b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/yaml/mix.cn.md
@@ -62,5 +62,4 @@ rules:
 
 props:
   sql-show: true
-  query-with-cipher-column: true
 ```
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/yaml/mix.en.md b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/yaml/mix.en.md
index c392bcf..4d3333f 100644
--- a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/yaml/mix.en.md
+++ b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/yaml/mix.en.md
@@ -63,5 +63,4 @@ rules:
 
 props:
   sql-show: true
-  query-with-cipher-column: true
 ```
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/usage/governance/spring-namespace.cn.md b/docs/document/content/user-manual/shardingsphere-jdbc/usage/governance/spring-namespace.cn.md
index 9b938e1..b6bd355 100644
--- a/docs/document/content/user-manual/shardingsphere-jdbc/usage/governance/spring-namespace.cn.md
+++ b/docs/document/content/user-manual/shardingsphere-jdbc/usage/governance/spring-namespace.cn.md
@@ -45,11 +45,7 @@ weight = 4
      <governance:reg-center id="regCenter" type="Zookeeper" server-lists="localhost:2181" />   
      <governance:data-source id="shardingDatabasesTablesDataSource" data-source-names="demo_ds_0, demo_ds_1" reg-center-ref="regCenter" config-center-ref="configCenter" rule-refs="shardingRule" overwrite="true" />
      <governance:data-source id="replicaQueryDataSource" data-source-names="demo_primary_ds, demo_replica_ds_0, demo_replica_ds_1" reg-center-ref="regCenter" config-center-ref="configCenter" rule-refs="replicaQueryRule" overwrite="true" />
-     <governance:data-source id="encryptDataSource" data-source-names="demo_ds" reg-center-ref="regCenter" config-center-ref="configCenter" rule-refs="encryptRule" overwrite="true" >
-        <props>
-            <prop key="query-with-cipher-column">true</prop>
-        </props>
-     </governance:data-source>
+     <governance:data-source id="encryptDataSource" data-source-names="demo_ds" reg-center-ref="regCenter" config-center-ref="configCenter" rule-refs="encryptRule" overwrite="true" />
 </beans>
 ```
 
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/usage/governance/spring-namespace.en.md b/docs/document/content/user-manual/shardingsphere-jdbc/usage/governance/spring-namespace.en.md
index aec5ff9..cfce7d3 100644
--- a/docs/document/content/user-manual/shardingsphere-jdbc/usage/governance/spring-namespace.en.md
+++ b/docs/document/content/user-manual/shardingsphere-jdbc/usage/governance/spring-namespace.en.md
@@ -44,11 +44,7 @@ weight = 4
      </util:properties>
      <governance:reg-center id="regCenter" type="Zookeeper" server-lists="localhost:2181" />
      <governance:data-source id="shardingDatabasesTablesDataSource" data-source-names="demo_ds_0, demo_ds_1" reg-center-ref="regCenter" config-center-ref="configCenter" rule-refs="shardingRule" overwrite="true" />
-     <governance:data-source id="encryptDataSource" data-source-names="demo_ds" reg-center-ref="regCenter" config-center-ref="configCenter" rule-refs="encryptRule" overwrite="true" >
-        <props>
-            <prop key="query-with-cipher-column">true</prop>
-        </props>
-     </governance:data-source>
+     <governance:data-source id="encryptDataSource" data-source-names="demo_ds" reg-center-ref="regCenter" config-center-ref="configCenter" rule-refs="encryptRule" overwrite="true" />
 </beans>
 ```
 
diff --git a/docs/document/content/user-manual/shardingsphere-proxy/configuration/props.cn.md b/docs/document/content/user-manual/shardingsphere-proxy/configuration/props.cn.md
index 8523f2f..54b29a8 100644
--- a/docs/document/content/user-manual/shardingsphere-proxy/configuration/props.cn.md
+++ b/docs/document/content/user-manual/shardingsphere-proxy/configuration/props.cn.md
@@ -10,16 +10,15 @@ Apache ShardingSphere 提供属性配置的方式配置系统级配置。
 
 ## 配置项说明
 
-| *名称*                             | *数据类型*   | *说明*                                                                                                                                                                                  | *默认值*  |
-| ---------------------------------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- |
+| *名称*                             | *数据类型*   | *说明*                                                                                                                                                                           | *默认值*  |
+| ---------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------- |
 | sql-show (?)                       | boolean     | 是否在日志中打印 SQL。 <br /> 打印 SQL 可以帮助开发者快速定位系统问题。日志内容包含:逻辑 SQL,真实 SQL 和 SQL 解析结果。<br /> 如果开启配置,日志将使用 Topic `ShardingSphere-SQL`,日志级别是 INFO。 | false    |
-| sql-simple (?)                     | boolean     | 是否在日志中打印简单风格的 SQL。                                                                                                                                                           | false    |
-| executor-size (?)                  | int         | 用于设置任务处理线程池的大小。每个 ShardingSphereDataSource 使用一个独立的线程池,同一个 JVM 的不同数据源不共享线程池。                                                                           | infinite |
-| max-connections-size-per-query (?) | int         | 一次查询请求在每个数据库实例中所能使用的最大连接数。                                                                                                                                          | 1        |
-| check-table-metadata-enabled (?)   | boolean     | 是否在程序启动和更新时检查分片元数据的结构一致性。                                                                                                                                            | false    |
-| query-with-cipher-column (?)       | boolean     | 是否使用加密列进行查询。在有原文列的情况下,可以使用原文列进行查询。                                                                                                                            | true     |
-| proxy-frontend-flush-threshold (?) | int         | 在 ShardingSphere-Proxy 中设置传输数据条数的 IO 刷新阈值。                                                                                                                                  | 128      |
-| proxy-transaction-type (?)         | String      | ShardingSphere-Proxy 中使用的默认事务类型。包括:LOCAL、XA 和 BASE。                                                                                                                         | LOCAL    |
-| proxy-opentracing-enabled (?)      | boolean     | 是否允许在 ShardingSphere-Proxy 中使用 OpenTracing。                                                                                                                                       | false    |
-| proxy-hint-enabled (?)             | boolean     | 是否允许在 ShardingSphere-Proxy 中使用 Hint。使用 Hint 会将 Proxy 的线程处理模型由 IO 多路复用变更为每个请求一个独立的线程,会降低 Proxy 的吞吐量。                                                 | false    |
-| xa-transaction-manager-type (?)    | String      | XA 事务管理器类型。列如:Atomikos,Narayana,Bitronix。                                                                                                                                     | Atomikos  |
+| sql-simple (?)                     | boolean     | 是否在日志中打印简单风格的 SQL。                                                                                                                                                     | false   |
+| executor-size (?)                  | int         | 用于设置任务处理线程池的大小。每个 ShardingSphereDataSource 使用一个独立的线程池,同一个 JVM 的不同数据源不共享线程池。                                                                         | infinite |
+| max-connections-size-per-query (?) | int         | 一次查询请求在每个数据库实例中所能使用的最大连接数。                                                                                                                                     | 1        |
+| check-table-metadata-enabled (?)   | boolean     | 是否在程序启动和更新时检查分片元数据的结构一致性。                                                                                                                                       | false    |
+| proxy-frontend-flush-threshold (?) | int         | 在 ShardingSphere-Proxy 中设置传输数据条数的 IO 刷新阈值。                                                                                                                            | 128      |
+| proxy-transaction-type (?)         | String      | ShardingSphere-Proxy 中使用的默认事务类型。包括:LOCAL、XA 和 BASE。                                                                                                                   | LOCAL    |
+| proxy-opentracing-enabled (?)      | boolean     | 是否允许在 ShardingSphere-Proxy 中使用 OpenTracing。                                                                                                                                | false    |
+| proxy-hint-enabled (?)             | boolean     | 是否允许在 ShardingSphere-Proxy 中使用 Hint。使用 Hint 会将 Proxy 的线程处理模型由 IO 多路复用变更为每个请求一个独立的线程,会降低 Proxy 的吞吐量。                                                | false    |
+| xa-transaction-manager-type (?)    | String      | XA 事务管理器类型。列如:Atomikos,Narayana,Bitronix。                                                                                                                               | Atomikos |
diff --git a/docs/document/content/user-manual/shardingsphere-proxy/configuration/props.en.md b/docs/document/content/user-manual/shardingsphere-proxy/configuration/props.en.md
index ed6a814..720dda0 100644
--- a/docs/document/content/user-manual/shardingsphere-proxy/configuration/props.en.md
+++ b/docs/document/content/user-manual/shardingsphere-proxy/configuration/props.en.md
@@ -17,9 +17,8 @@ Apache ShardingSphere provides the way of property configuration to configure sy
 | executor-size (?)                  | int         | The max thread size of worker group to execute SQL. One ShardingSphereDataSource will use a independent thread pool, it does not share thread pool even different data source in same JVM.                                                                   | infinite        |
 | max-connections-size-per-query (?) | int         | Max opened connection size for each query.                                                                                                                                                                                                                   | 1               |
 | check-table-metadata-enabled (?)   | boolean     | Whether validate table meta data consistency when application startup or updated.                                                                                                                                                                            | false           |
-| query-with-cipher-column (?)       | boolean     | Whether query with cipher column for data encrypt. User you can use plaintext to query if have.                                                                                                                                                              | true            |
 | proxy-frontend-flush-threshold (?) | int         | Flush threshold for every records from databases for ShardingSphere-Proxy.                                                                                                                                                                                   | 128             |
 | proxy-transaction-type (?)         | String      | Default transaction type of ShardingSphere-Proxy. Include: LOCAL, XA and BASE.                                                                                                                                                                               | LOCAL           |
 | proxy-opentracing-enabled (?)      | boolean     | Whether enable opentracing for ShardingSphere-Proxy.                                                                                                                                                                                                         | false           |
 | proxy-hint-enabled (?)             | boolean     | Whether enable hint for ShardingSphere-Proxy. Using Hint will switch proxy thread mode from IO multiplexing to per connection per thread, which will reduce system throughput.                                                                               | false           |
-| xa-transaction-manager-type (?)    | String      | XA Transaction manager type. Include: Atomikos, Narayana and Bitronix.                                                                                                                                                                                                    | Atomikos        |
+| xa-transaction-manager-type (?)    | String      | XA Transaction manager type. Include: Atomikos, Narayana and Bitronix.                                                                                                                                                                                       | Atomikos        |
diff --git a/examples/shardingsphere-jdbc-example/governance-example/governance-raw-jdbc-example/src/main/resources/META-INF/zookeeper/local/encrypt.yaml b/examples/shardingsphere-jdbc-example/governance-example/governance-raw-jdbc-example/src/main/resources/META-INF/zookeeper/local/encrypt.yaml
index 474379b..87b2616 100644
--- a/examples/shardingsphere-jdbc-example/governance-example/governance-raw-jdbc-example/src/main/resources/META-INF/zookeeper/local/encrypt.yaml
+++ b/examples/shardingsphere-jdbc-example/governance-example/governance-raw-jdbc-example/src/main/resources/META-INF/zookeeper/local/encrypt.yaml
@@ -45,5 +45,4 @@ rules:
         aes-key-value: 123456abc
 
 props:
-  query-with-cipher-column: true
   sql-show: true
diff --git a/examples/shardingsphere-jdbc-example/governance-example/governance-spring-namespace-example/src/main/resources/META-INF/zookeeper/local/application-encrypt.xml b/examples/shardingsphere-jdbc-example/governance-example/governance-spring-namespace-example/src/main/resources/META-INF/zookeeper/local/application-encrypt.xml
index 5c11a26..7c7ccc9 100644
--- a/examples/shardingsphere-jdbc-example/governance-example/governance-spring-namespace-example/src/main/resources/META-INF/zookeeper/local/application-encrypt.xml
+++ b/examples/shardingsphere-jdbc-example/governance-example/governance-spring-namespace-example/src/main/resources/META-INF/zookeeper/local/application-encrypt.xml
@@ -57,11 +57,7 @@
         </encrypt:table>
     </encrypt:rule>
     
-    <governance:data-source id="encryptDataSource" data-source-names="demo_ds" reg-center-ref="regCenter" rule-refs="encryptRule">
-        <props>
-            <prop key="query-with-cipher-column">true</prop>
-        </props>
-    </governance:data-source>
+    <governance:data-source id="encryptDataSource" data-source-names="demo_ds" reg-center-ref="regCenter" rule-refs="encryptRule" />
     
     <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
         <property name="dataSource" ref="encryptDataSource" />
diff --git a/examples/shardingsphere-jdbc-example/other-feature-example/encrypt-example/encrypt-raw-jdbc-example/src/main/java/org/apache/shardingsphere/example/encrypt/table/raw/jdbc/config/EncryptDatabasesConfiguration.java b/examples/shardingsphere-jdbc-example/other-feature-example/encrypt-example/encrypt-raw-jdbc-example/src/main/java/org/apache/shardingsphere/example/encrypt/table/raw/jdbc/config/EncryptDatabasesConfiguration.java
index 4beb3c1..a0a6790 100644
--- a/examples/shardingsphere-jdbc-example/other-feature-example/encrypt-example/encrypt-raw-jdbc-example/src/main/java/org/apache/shardingsphere/example/encrypt/table/raw/jdbc/config/EncryptDatabasesConfiguration.java
+++ b/examples/shardingsphere-jdbc-example/other-feature-example/encrypt-example/encrypt-raw-jdbc-example/src/main/java/org/apache/shardingsphere/example/encrypt/table/raw/jdbc/config/EncryptDatabasesConfiguration.java
@@ -39,7 +39,6 @@ public final class EncryptDatabasesConfiguration implements ExampleConfiguration
     public DataSource getDataSource() {
         Properties props = new Properties();
         props.setProperty("aes-key-value", "123456");
-        props.setProperty("query-with-cipher-column", "true");
         EncryptColumnRuleConfiguration columnConfigAes = new EncryptColumnRuleConfiguration("user_name", "user_name", "", "user_name_plain", "name_encryptor");
         EncryptColumnRuleConfiguration columnConfigTest = new EncryptColumnRuleConfiguration("pwd", "pwd", "assisted_query_pwd", "", "pwd_encryptor");
         EncryptTableRuleConfiguration encryptTableRuleConfig = new EncryptTableRuleConfiguration("t_user", Arrays.asList(columnConfigAes, columnConfigTest));
diff --git a/examples/shardingsphere-jdbc-example/other-feature-example/encrypt-example/encrypt-raw-jdbc-example/src/main/resources/META-INF/encrypt-databases.yaml b/examples/shardingsphere-jdbc-example/other-feature-example/encrypt-example/encrypt-raw-jdbc-example/src/main/resources/META-INF/encrypt-databases.yaml
index 197f255..5cececa 100644
--- a/examples/shardingsphere-jdbc-example/other-feature-example/encrypt-example/encrypt-raw-jdbc-example/src/main/resources/META-INF/encrypt-databases.yaml
+++ b/examples/shardingsphere-jdbc-example/other-feature-example/encrypt-example/encrypt-raw-jdbc-example/src/main/resources/META-INF/encrypt-databases.yaml
@@ -43,6 +43,3 @@ rules:
         aes-key-value: 123456abc
     pwd_encryptor:
       type: assistedTest
-
-props:
-  query-with-cipher-column: true
diff --git a/examples/shardingsphere-jdbc-example/other-feature-example/encrypt-example/encrypt-spring-namespace-example/src/main/resources/META-INF/application-encrypt-databases.xml b/examples/shardingsphere-jdbc-example/other-feature-example/encrypt-example/encrypt-spring-namespace-example/src/main/resources/META-INF/application-encrypt-databases.xml
index c4e2ea8..1074ead 100644
--- a/examples/shardingsphere-jdbc-example/other-feature-example/encrypt-example/encrypt-spring-namespace-example/src/main/resources/META-INF/application-encrypt-databases.xml
+++ b/examples/shardingsphere-jdbc-example/other-feature-example/encrypt-example/encrypt-spring-namespace-example/src/main/resources/META-INF/application-encrypt-databases.xml
@@ -56,11 +56,7 @@
         </encrypt:table>
     </encrypt:rule>
     
-    <shardingsphere:data-source id="encryptDataSource" data-source-names="ds" rule-refs="encryptRule">
-        <props>
-            <prop key="query-with-cipher-column">true</prop>
-        </props>
-    </shardingsphere:data-source>
+    <shardingsphere:data-source id="encryptDataSource" data-source-names="ds" rule-refs="encryptRule" />
     
     <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
         <property name="dataSource" ref="encryptDataSource" />
diff --git a/examples/shardingsphere-jdbc-example/other-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/java/org/apache/shardingsphere/example/shadow/table/raw/jdbc/config/EncryptShadowDatabasesConfiguration.java b/examples/shardingsphere-jdbc-example/other-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/java/org/apache/shardingsphere/example/shadow/table/raw/jdbc/config/EncryptShadowDatabasesConfiguration.java
index 59669cf..01d35cd 100644
--- a/examples/shardingsphere-jdbc-example/other-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/java/org/apache/shardingsphere/example/shadow/table/raw/jdbc/config/EncryptShadowDatabasesConfiguration.java
+++ b/examples/shardingsphere-jdbc-example/other-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/java/org/apache/shardingsphere/example/shadow/table/raw/jdbc/config/EncryptShadowDatabasesConfiguration.java
@@ -48,7 +48,6 @@ public final class EncryptShadowDatabasesConfiguration implements ExampleConfigu
         EncryptRuleConfiguration encryptRuleConfig = new EncryptRuleConfiguration(getEncryptTableRuleConfigurations(), getEncryptAlgorithmConfigurations());
         Properties props = new Properties();
         props.setProperty(ConfigurationPropertyKey.SQL_SHOW.getKey(), "true");
-        props.setProperty(ConfigurationPropertyKey.QUERY_WITH_CIPHER_COLUMN.getKey(), "true");
         ShadowRuleConfiguration shadowRuleConfig = new ShadowRuleConfiguration("shadow", Collections.singletonList("ds"), Collections.singletonList("ds_0"));
         return ShardingSphereDataSourceFactory.createDataSource(dataSourceMap, Arrays.asList(shadowRuleConfig, encryptRuleConfig), props);
     }
diff --git a/examples/shardingsphere-jdbc-example/other-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/resources/META-INF/encrypt-shadow-databases.yaml b/examples/shardingsphere-jdbc-example/other-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/resources/META-INF/encrypt-shadow-databases.yaml
index 0d8233f..a8f9e96 100644
--- a/examples/shardingsphere-jdbc-example/other-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/resources/META-INF/encrypt-shadow-databases.yaml
+++ b/examples/shardingsphere-jdbc-example/other-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/resources/META-INF/encrypt-shadow-databases.yaml
@@ -58,5 +58,4 @@ rules:
       type: assistedTest
 
 props:
-  query-with-cipher-column: true
   sql-show: true
diff --git a/examples/shardingsphere-jdbc-example/other-feature-example/shadow-example/shadow-spring-namespace-example/src/main/resources/META-INF/application-encrypt-shadow-databases.xml b/examples/shardingsphere-jdbc-example/other-feature-example/shadow-example/shadow-spring-namespace-example/src/main/resources/META-INF/application-encrypt-shadow-databases.xml
index 0be5641..d634f99 100644
--- a/examples/shardingsphere-jdbc-example/other-feature-example/shadow-example/shadow-spring-namespace-example/src/main/resources/META-INF/application-encrypt-shadow-databases.xml
+++ b/examples/shardingsphere-jdbc-example/other-feature-example/shadow-example/shadow-spring-namespace-example/src/main/resources/META-INF/application-encrypt-shadow-databases.xml
@@ -68,12 +68,7 @@
         </encrypt:table>
     </encrypt:rule>
     
-    <shardingsphere:data-source id="encryptShadowDataSource" data-source-names="ds,shadow_ds" rule-refs="shadowRule,encryptRule">
-        <props>
-            <prop key="sql-show">true</prop>
-            <prop key="query-with-cipher-column">true</prop>
-        </props>
-    </shardingsphere:data-source>
+    <shardingsphere:data-source id="encryptShadowDataSource" data-source-names="ds,shadow_ds" rule-refs="shadowRule,encryptRule" />
     
     <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
         <property name="dataSource" ref="encryptShadowDataSource" />
diff --git a/examples/shardingsphere-proxy-example/shardingsphere-proxy-boot-mybatis-example/src/main/resources/conf/server.yaml b/examples/shardingsphere-proxy-example/shardingsphere-proxy-boot-mybatis-example/src/main/resources/conf/server.yaml
index 7d9185c..74fe5a5 100644
--- a/examples/shardingsphere-proxy-example/shardingsphere-proxy-boot-mybatis-example/src/main/resources/conf/server.yaml
+++ b/examples/shardingsphere-proxy-example/shardingsphere-proxy-boot-mybatis-example/src/main/resources/conf/server.yaml
@@ -51,7 +51,6 @@ props:
   proxy-transaction-type: LOCAL
   proxy-opentracing-enabled: false
   proxy-hint-enabled: false
-  query-with-cipher-column: true
   sql-show: false
   check-table-metadata-enabled: false
 
diff --git a/examples/shardingsphere-proxy-example/shardingsphere-proxy-hint-example/src/main/resources/conf/server.yaml b/examples/shardingsphere-proxy-example/shardingsphere-proxy-hint-example/src/main/resources/conf/server.yaml
index 5fc4da6..9b87e76 100644
--- a/examples/shardingsphere-proxy-example/shardingsphere-proxy-hint-example/src/main/resources/conf/server.yaml
+++ b/examples/shardingsphere-proxy-example/shardingsphere-proxy-hint-example/src/main/resources/conf/server.yaml
@@ -50,6 +50,5 @@ props:
   proxy-transaction-type: LOCAL
   proxy-opentracing-enabled: false
   proxy-hint-enabled: true
-  query-with-cipher-column: true
   sql-show: true
   check-table-metadata-enabled: false
diff --git a/shardingsphere-distribution/shardingsphere-proxy-distribution/src/main/resources/conf/server.yaml b/shardingsphere-distribution/shardingsphere-proxy-distribution/src/main/resources/conf/server.yaml
index cda98cd..2e4d7c2 100644
--- a/shardingsphere-distribution/shardingsphere-proxy-distribution/src/main/resources/conf/server.yaml
+++ b/shardingsphere-distribution/shardingsphere-proxy-distribution/src/main/resources/conf/server.yaml
@@ -56,7 +56,6 @@
 #  xa-transaction-manager-type: Atomikos
 #  proxy-opentracing-enabled: false
 #  proxy-hint-enabled: false
-#  query-with-cipher-column: true
 #  sql-show: false
 #  check-table-metadata-enabled: false
 #  lock-wait-timeout-milliseconds: 50000 # The maximum time to wait for a lock
diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-api/src/main/java/org/apache/shardingsphere/encrypt/api/config/EncryptRuleConfiguration.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-api/src/main/java/org/apache/shardingsphere/encrypt/api/config/EncryptRuleConfiguration.java
index 98950de..a27ea28 100644
--- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-api/src/main/java/org/apache/shardingsphere/encrypt/api/config/EncryptRuleConfiguration.java
+++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-api/src/main/java/org/apache/shardingsphere/encrypt/api/config/EncryptRuleConfiguration.java
@@ -36,4 +36,10 @@ public final class EncryptRuleConfiguration implements RuleConfiguration {
     private final Collection<EncryptTableRuleConfiguration> tables;
     
     private final Map<String, ShardingSphereAlgorithmConfiguration> encryptors;
+    
+    private final boolean queryWithCipherColumn;
+    
+    public EncryptRuleConfiguration(final Collection<EncryptTableRuleConfiguration> tables, final Map<String, ShardingSphereAlgorithmConfiguration> encryptors) {
+        this(tables, encryptors, true);
+    }
 }
diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/main/java/org/apache/shardingsphere/encrypt/algorithm/config/AlgorithmProvidedEncryptRuleConfiguration.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/main/java/org/apache/shardingsphere/encrypt/algorithm/config/AlgorithmProvidedEncryptRuleConfiguration.java
index f4ba462..ec9b5b2 100644
--- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/main/java/org/apache/shardingsphere/encrypt/algorithm/config/AlgorithmProvidedEncryptRuleConfiguration.java
+++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/main/java/org/apache/shardingsphere/encrypt/algorithm/config/AlgorithmProvidedEncryptRuleConfiguration.java
@@ -42,4 +42,6 @@ public final class AlgorithmProvidedEncryptRuleConfiguration implements RuleConf
     private Collection<EncryptTableRuleConfiguration> tables = new LinkedList<>();
     
     private Map<String, EncryptAlgorithm> encryptors = new LinkedHashMap<>();
+    
+    private boolean queryWithCipherColumn = true;
 }
diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptRule.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptRule.java
index a402159..47229af 100644
--- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptRule.java
+++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptRule.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.encrypt.rule;
 
 import com.google.common.base.Preconditions;
 import com.google.common.base.Strings;
+import lombok.Getter;
 import org.apache.shardingsphere.encrypt.algorithm.config.AlgorithmProvidedEncryptRuleConfiguration;
 import org.apache.shardingsphere.encrypt.api.config.EncryptRuleConfiguration;
 import org.apache.shardingsphere.encrypt.api.config.rule.EncryptColumnRuleConfiguration;
@@ -52,16 +53,21 @@ public final class EncryptRule implements FeatureRule, SchemaRule, TableContaine
     
     private final Map<String, EncryptTable> tables = new LinkedHashMap<>();
     
+    @Getter
+    private final boolean queryWithCipherColumn;
+    
     public EncryptRule(final EncryptRuleConfiguration config) {
         Preconditions.checkArgument(isValidRuleConfiguration(config), "Invalid encrypt column configurations in EncryptTableRuleConfigurations.");
         config.getEncryptors().forEach((key, value) -> encryptors.put(key, ShardingSphereAlgorithmFactory.createAlgorithm(value, EncryptAlgorithm.class)));
         config.getTables().forEach(each -> tables.put(each.getName(), new EncryptTable(each)));
+        queryWithCipherColumn = config.isQueryWithCipherColumn();
     }
     
     public EncryptRule(final AlgorithmProvidedEncryptRuleConfiguration config) {
         Preconditions.checkArgument(isValidRuleConfigurationWithAlgorithmProvided(config), "Invalid encrypt column configurations in EncryptTableRuleConfigurations.");
         encryptors.putAll(config.getEncryptors());
         config.getTables().forEach(each -> tables.put(each.getName(), new EncryptTable(each)));
+        queryWithCipherColumn = config.isQueryWithCipherColumn();
     }
     
     private boolean isValidRuleConfiguration(final EncryptRuleConfiguration config) {
diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/main/java/org/apache/shardingsphere/encrypt/yaml/config/YamlEncryptRuleConfiguration.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/main/java/org/apache/shardingsphere/encrypt/yaml/config/YamlEncryptRuleConfiguration.java
index d7f603c..d05afe1 100644
--- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/main/java/org/apache/shardingsphere/encrypt/yaml/config/YamlEncryptRuleConfiguration.java
+++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/main/java/org/apache/shardingsphere/encrypt/yaml/config/YamlEncryptRuleConfiguration.java
@@ -38,6 +38,8 @@ public final class YamlEncryptRuleConfiguration implements YamlRuleConfiguration
     
     private Map<String, YamlShardingSphereAlgorithmConfiguration> encryptors = new LinkedHashMap<>();
     
+    private boolean queryWithCipherColumn = true;
+    
     @Override
     public Class<EncryptRuleConfiguration> getRuleConfigurationType() {
         return EncryptRuleConfiguration.class;
diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/main/java/org/apache/shardingsphere/encrypt/yaml/swapper/EncryptRuleAlgorithmProviderConfigurationYamlSwapper.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/main/java/org/apache/shardingsphere/encrypt/yaml/swapper/EncryptRuleAlgorithmProviderConfigurationYamlSwapper.java
index 6c13831..7887256 100644
--- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/main/java/org/apache/shardingsphere/encrypt/yaml/swapper/EncryptRuleAlgorithmProviderConfigurationYamlSwapper.java
+++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/main/java/org/apache/shardingsphere/encrypt/yaml/swapper/EncryptRuleAlgorithmProviderConfigurationYamlSwapper.java
@@ -42,6 +42,7 @@ public final class EncryptRuleAlgorithmProviderConfigurationYamlSwapper implemen
         YamlEncryptRuleConfiguration result = new YamlEncryptRuleConfiguration();
         data.getTables().forEach(each -> result.getTables().put(each.getName(), tableYamlSwapper.swapToYamlConfiguration(each)));
         data.getEncryptors().forEach((key, value) -> result.getEncryptors().put(key, new YamlShardingSphereAlgorithmConfiguration(value.getType(), value.getProps())));
+        result.setQueryWithCipherColumn(data.isQueryWithCipherColumn());
         return result;
     }
     
@@ -49,6 +50,7 @@ public final class EncryptRuleAlgorithmProviderConfigurationYamlSwapper implemen
     public AlgorithmProvidedEncryptRuleConfiguration swapToObject(final YamlEncryptRuleConfiguration yamlConfig) {
         AlgorithmProvidedEncryptRuleConfiguration result = new AlgorithmProvidedEncryptRuleConfiguration();
         result.setTables(swapTables(yamlConfig));
+        result.setQueryWithCipherColumn(yamlConfig.isQueryWithCipherColumn());
         return result;
     }
     
diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/main/java/org/apache/shardingsphere/encrypt/yaml/swapper/EncryptRuleConfigurationYamlSwapper.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/main/java/org/apache/shardingsphere/encrypt/yaml/swapper/EncryptRuleConfigurationYamlSwapper.java
index 5985d5b..d34eae5 100644
--- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/main/java/org/apache/shardingsphere/encrypt/yaml/swapper/EncryptRuleConfigurationYamlSwapper.java
+++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/main/java/org/apache/shardingsphere/encrypt/yaml/swapper/EncryptRuleConfigurationYamlSwapper.java
@@ -48,12 +48,13 @@ public final class EncryptRuleConfigurationYamlSwapper implements YamlRuleConfig
         YamlEncryptRuleConfiguration result = new YamlEncryptRuleConfiguration();
         data.getTables().forEach(each -> result.getTables().put(each.getName(), tableYamlSwapper.swapToYamlConfiguration(each)));
         data.getEncryptors().forEach((key, value) -> result.getEncryptors().put(key, algorithmSwapper.swapToYamlConfiguration(value)));
+        result.setQueryWithCipherColumn(data.isQueryWithCipherColumn());
         return result;
     }
     
     @Override
     public EncryptRuleConfiguration swapToObject(final YamlEncryptRuleConfiguration yamlConfig) {
-        return new EncryptRuleConfiguration(swapTables(yamlConfig), swapEncryptAlgorithm(yamlConfig));
+        return new EncryptRuleConfiguration(swapTables(yamlConfig), swapEncryptAlgorithm(yamlConfig), yamlConfig.isQueryWithCipherColumn());
     }
     
     private Collection<EncryptTableRuleConfiguration> swapTables(final YamlEncryptRuleConfiguration yamlConfig) {
diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/test/java/org/apache/shardingsphere/encrypt/rule/EncryptRuleTest.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/test/java/org/apache/shardingsphere/encrypt/rule/EncryptRuleTest.java
index e16d334..40521d1 100644
--- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/test/java/org/apache/shardingsphere/encrypt/rule/EncryptRuleTest.java
+++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/test/java/org/apache/shardingsphere/encrypt/rule/EncryptRuleTest.java
@@ -44,7 +44,7 @@ public final class EncryptRuleTest {
         EncryptColumnRuleConfiguration encryptColumnConfig = new EncryptColumnRuleConfiguration("encrypt_column", "encrypt_cipher", "", "", "test_encryptor");
         EncryptTableRuleConfiguration tableConfig = new EncryptTableRuleConfiguration("t_encrypt", Collections.singletonList(encryptColumnConfig));
         AlgorithmProvidedEncryptRuleConfiguration ruleConfig = new AlgorithmProvidedEncryptRuleConfiguration(
-                Collections.singleton(tableConfig), ImmutableMap.of("test_encryptor", new TestEncryptAlgorithm()));
+                Collections.singleton(tableConfig), ImmutableMap.of("test_encryptor", new TestEncryptAlgorithm()), true);
         EncryptRule actual = new EncryptRule(ruleConfig);
         assertTrue(actual.findEncryptTable("t_encrypt").isPresent());
     }
@@ -63,7 +63,7 @@ public final class EncryptRuleTest {
         EncryptColumnRuleConfiguration encryptColumnConfig = new EncryptColumnRuleConfiguration("encrypt_column", "encrypt_cipher", "", "", "test_encryptor");
         EncryptTableRuleConfiguration tableConfig = new EncryptTableRuleConfiguration("t_encrypt", Collections.singletonList(encryptColumnConfig));
         AlgorithmProvidedEncryptRuleConfiguration ruleConfig = new AlgorithmProvidedEncryptRuleConfiguration(
-                Collections.singleton(tableConfig), ImmutableMap.of("invalid_encryptor", new TestEncryptAlgorithm()));
+                Collections.singleton(tableConfig), ImmutableMap.of("invalid_encryptor", new TestEncryptAlgorithm()), true);
         new EncryptRule(ruleConfig);
     }
     
diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/test/java/org/apache/shardingsphere/encrypt/yaml/swapper/EncryptRuleAlgorithmProviderConfigurationYamlSwapperTest.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/test/java/org/apache/shardingsphere/encrypt/yaml/swapper/EncryptRuleAlgorithmProviderConfigurationYamlSwapperTest.java
index b1534f7..38a70e8 100644
--- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/test/java/org/apache/shardingsphere/encrypt/yaml/swapper/EncryptRuleAlgorithmProviderConfigurationYamlSwapperTest.java
+++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/test/java/org/apache/shardingsphere/encrypt/yaml/swapper/EncryptRuleAlgorithmProviderConfigurationYamlSwapperTest.java
@@ -59,7 +59,7 @@ public final class EncryptRuleAlgorithmProviderConfigurationYamlSwapperTest {
     private AlgorithmProvidedEncryptRuleConfiguration createAlgorithmProvidedEncryptRuleConfiguration() {
         Collection<EncryptTableRuleConfiguration> tables = Collections.singletonList(new EncryptTableRuleConfiguration("tbl", Collections.emptyList()));
         Map<String, EncryptAlgorithm> encryptors = new LinkedHashMap<>();
-        return new AlgorithmProvidedEncryptRuleConfiguration(tables, encryptors);
+        return new AlgorithmProvidedEncryptRuleConfiguration(tables, encryptors, true);
     }
     
     @Test
diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/main/java/org/apache/shardingsphere/encrypt/merge/EncryptResultDecoratorEngine.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/main/java/org/apache/shardingsphere/encrypt/merge/EncryptResultDecoratorEngine.java
index 2468efa..397a35d 100644
--- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/main/java/org/apache/shardingsphere/encrypt/merge/EncryptResultDecoratorEngine.java
+++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/main/java/org/apache/shardingsphere/encrypt/merge/EncryptResultDecoratorEngine.java
@@ -19,18 +19,17 @@ package org.apache.shardingsphere.encrypt.merge;
 
 import org.apache.shardingsphere.encrypt.constant.EncryptOrder;
 import org.apache.shardingsphere.encrypt.merge.dal.EncryptDALResultDecorator;
-import org.apache.shardingsphere.encrypt.merge.dql.EncryptDQLResultDecorator;
 import org.apache.shardingsphere.encrypt.merge.dql.EncryptAlgorithmMetaData;
+import org.apache.shardingsphere.encrypt.merge.dql.EncryptDQLResultDecorator;
 import org.apache.shardingsphere.encrypt.rule.EncryptRule;
+import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
+import org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementContext;
 import org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
-import org.apache.shardingsphere.infra.config.properties.ConfigurationPropertyKey;
 import org.apache.shardingsphere.infra.database.type.DatabaseType;
 import org.apache.shardingsphere.infra.merge.engine.decorator.ResultDecorator;
 import org.apache.shardingsphere.infra.merge.engine.decorator.ResultDecoratorEngine;
 import org.apache.shardingsphere.infra.merge.engine.decorator.impl.TransparentResultDecorator;
 import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema;
-import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
-import org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementContext;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.dal.DALStatement;
 
 /**
@@ -43,7 +42,7 @@ public final class EncryptResultDecoratorEngine implements ResultDecoratorEngine
                                        final EncryptRule encryptRule, final ConfigurationProperties props, final SQLStatementContext sqlStatementContext) {
         if (sqlStatementContext instanceof SelectStatementContext) {
             return new EncryptDQLResultDecorator(new EncryptAlgorithmMetaData(schema, 
-                    encryptRule, (SelectStatementContext) sqlStatementContext), props.<Boolean>getValue(ConfigurationPropertyKey.QUERY_WITH_CIPHER_COLUMN));
+                    encryptRule, (SelectStatementContext) sqlStatementContext), encryptRule.isQueryWithCipherColumn());
         } 
         if (sqlStatementContext.getSqlStatement() instanceof DALStatement) {
             return new EncryptDALResultDecorator();
diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/test/java/org/apache/shardingsphere/encrypt/merge/EncryptResultDecoratorEngineTest.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/test/java/org/apache/shardingsphere/encrypt/merge/EncryptResultDecoratorEngineTest.java
index dcfad0b..d61cd7a 100644
--- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/test/java/org/apache/shardingsphere/encrypt/merge/EncryptResultDecoratorEngineTest.java
+++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/test/java/org/apache/shardingsphere/encrypt/merge/EncryptResultDecoratorEngineTest.java
@@ -20,21 +20,19 @@ package org.apache.shardingsphere.encrypt.merge;
 import org.apache.shardingsphere.encrypt.merge.dal.EncryptDALResultDecorator;
 import org.apache.shardingsphere.encrypt.merge.dql.EncryptDQLResultDecorator;
 import org.apache.shardingsphere.encrypt.rule.EncryptRule;
+import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
+import org.apache.shardingsphere.infra.binder.statement.dal.DescribeStatementContext;
+import org.apache.shardingsphere.infra.binder.statement.dml.InsertStatementContext;
+import org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementContext;
 import org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
-import org.apache.shardingsphere.infra.config.properties.ConfigurationPropertyKey;
 import org.apache.shardingsphere.infra.database.type.DatabaseType;
 import org.apache.shardingsphere.infra.merge.engine.ResultProcessEngine;
 import org.apache.shardingsphere.infra.merge.engine.decorator.ResultDecorator;
 import org.apache.shardingsphere.infra.merge.engine.decorator.impl.TransparentResultDecorator;
+import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema;
 import org.apache.shardingsphere.infra.spi.ShardingSphereServiceLoader;
 import org.apache.shardingsphere.infra.spi.ordered.OrderedSPIRegistry;
-import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema;
-import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
-import org.apache.shardingsphere.infra.binder.statement.dal.DescribeStatementContext;
-import org.apache.shardingsphere.infra.binder.statement.dml.InsertStatementContext;
-import org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementContext;
 import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQLDescribeStatement;
-import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -63,18 +61,10 @@ public final class EncryptResultDecoratorEngineTest {
     @Mock
     private ShardingSphereSchema schema;
     
-    @Mock
-    private ConfigurationProperties props;
-    
-    @Before
-    public void setUp() {
-        when(props.getValue(ConfigurationPropertyKey.QUERY_WITH_CIPHER_COLUMN)).thenReturn(true);
-    }
-    
     @Test
     public void assertNewInstanceWithSelectStatement() {
         EncryptResultDecoratorEngine engine = (EncryptResultDecoratorEngine) OrderedSPIRegistry.getRegisteredServices(Collections.singleton(rule), ResultProcessEngine.class).get(rule);
-        ResultDecorator actual = engine.newInstance(databaseType, schema, rule, props, mock(SelectStatementContext.class));
+        ResultDecorator actual = engine.newInstance(databaseType, schema, rule, mock(ConfigurationProperties.class), mock(SelectStatementContext.class));
         assertThat(actual, instanceOf(EncryptDQLResultDecorator.class));
     }
     
@@ -83,14 +73,14 @@ public final class EncryptResultDecoratorEngineTest {
         SQLStatementContext<MySQLDescribeStatement> sqlStatementContext = mock(DescribeStatementContext.class);
         when(sqlStatementContext.getSqlStatement()).thenReturn(mock(MySQLDescribeStatement.class));
         EncryptResultDecoratorEngine engine = (EncryptResultDecoratorEngine) OrderedSPIRegistry.getRegisteredServices(Collections.singleton(rule), ResultProcessEngine.class).get(rule);
-        ResultDecorator actual = engine.newInstance(databaseType, schema, rule, props, sqlStatementContext);
+        ResultDecorator actual = engine.newInstance(databaseType, schema, rule, mock(ConfigurationProperties.class), sqlStatementContext);
         assertThat(actual, instanceOf(EncryptDALResultDecorator.class));
     }
     
     @Test
     public void assertNewInstanceWithOtherStatement() {
         EncryptResultDecoratorEngine engine = (EncryptResultDecoratorEngine) OrderedSPIRegistry.getRegisteredServices(Collections.singleton(rule), ResultProcessEngine.class).get(rule);
-        ResultDecorator actual = engine.newInstance(databaseType, schema, rule, props, mock(InsertStatementContext.class));
+        ResultDecorator actual = engine.newInstance(databaseType, schema, rule, mock(ConfigurationProperties.class), mock(InsertStatementContext.class));
         assertThat(actual, instanceOf(TransparentResultDecorator.class));
     }
 }
diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/main/java/org/apache/shardingsphere/encrypt/rewrite/context/EncryptSQLRewriteContextDecorator.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/main/java/org/apache/shardingsphere/encrypt/rewrite/context/EncryptSQLRewriteContextDecorator.java
index 9926812..5ee129d 100644
--- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/main/java/org/apache/shardingsphere/encrypt/rewrite/context/EncryptSQLRewriteContextDecorator.java
+++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/main/java/org/apache/shardingsphere/encrypt/rewrite/context/EncryptSQLRewriteContextDecorator.java
@@ -22,7 +22,6 @@ import org.apache.shardingsphere.encrypt.rewrite.parameter.EncryptParameterRewri
 import org.apache.shardingsphere.encrypt.rewrite.token.EncryptTokenGenerateBuilder;
 import org.apache.shardingsphere.encrypt.rule.EncryptRule;
 import org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
-import org.apache.shardingsphere.infra.config.properties.ConfigurationPropertyKey;
 import org.apache.shardingsphere.infra.rewrite.context.SQLRewriteContext;
 import org.apache.shardingsphere.infra.rewrite.context.SQLRewriteContextDecorator;
 import org.apache.shardingsphere.infra.rewrite.parameter.rewriter.ParameterRewriter;
@@ -36,13 +35,12 @@ public final class EncryptSQLRewriteContextDecorator implements SQLRewriteContex
     @SuppressWarnings("unchecked")
     @Override
     public void decorate(final EncryptRule encryptRule, final ConfigurationProperties props, final SQLRewriteContext sqlRewriteContext, final RouteContext routeContext) {
-        boolean isQueryWithCipherColumn = props.<Boolean>getValue(ConfigurationPropertyKey.QUERY_WITH_CIPHER_COLUMN);
-        for (ParameterRewriter each : new EncryptParameterRewriterBuilder(encryptRule, isQueryWithCipherColumn).getParameterRewriters(sqlRewriteContext.getSchema())) {
+        for (ParameterRewriter each : new EncryptParameterRewriterBuilder(encryptRule, encryptRule.isQueryWithCipherColumn()).getParameterRewriters(sqlRewriteContext.getSchema())) {
             if (!sqlRewriteContext.getParameters().isEmpty() && each.isNeedRewrite(sqlRewriteContext.getSqlStatementContext())) {
                 each.rewrite(sqlRewriteContext.getParameterBuilder(), sqlRewriteContext.getSqlStatementContext(), sqlRewriteContext.getParameters());
             }
         }
-        sqlRewriteContext.addSQLTokenGenerators(new EncryptTokenGenerateBuilder(encryptRule, isQueryWithCipherColumn).getSQLTokenGenerators());
+        sqlRewriteContext.addSQLTokenGenerators(new EncryptTokenGenerateBuilder(encryptRule, encryptRule.isQueryWithCipherColumn()).getSQLTokenGenerators());
     }
     
     @Override
diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/test/resources/yaml/encrypt/query-with-cipher.yaml b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/test/resources/yaml/encrypt/query-with-cipher.yaml
index 2e087ff..e7ec13b 100644
--- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/test/resources/yaml/encrypt/query-with-cipher.yaml
+++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/test/resources/yaml/encrypt/query-with-cipher.yaml
@@ -60,6 +60,3 @@ rules:
       type: NORMAL_ENCRYPT
     assisted_query:
       type: ASSISTED_QUERY_ENCRYPT
-
-props:
-  query-with-cipher-column: true
diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/test/resources/yaml/encrypt/query-with-plain.yaml b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/test/resources/yaml/encrypt/query-with-plain.yaml
index 4f5c283..aeeb109 100644
--- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/test/resources/yaml/encrypt/query-with-plain.yaml
+++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/test/resources/yaml/encrypt/query-with-plain.yaml
@@ -59,6 +59,4 @@ rules:
       type: NORMAL_ENCRYPT
     assisted_query:
       type: ASSISTED_QUERY_ENCRYPT
-
-props:
-  query-with-cipher-column: false
+  queryWithCipherColumn: false
diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-spring/shardingsphere-encrypt-spring-boot-starter/src/main/java/org/apache/shardingsphere/encrypt/spring/boot/EncryptRuleSpringBootConfiguration.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-spring/shardingsphere-encrypt-spring-boot-starter/src/main/java/org/apache/shardingsphere/encrypt/spring/boot/EncryptRuleSpringBootConfiguration.java
index d80ee92..1a7bcca 100644
--- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-spring/shardingsphere-encrypt-spring-boot-starter/src/main/java/org/apache/shardingsphere/encrypt/spring/boot/EncryptRuleSpringBootConfiguration.java
+++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-spring/shardingsphere-encrypt-spring-boot-starter/src/main/java/org/apache/shardingsphere/encrypt/spring/boot/EncryptRuleSpringBootConfiguration.java
@@ -62,6 +62,7 @@ public class EncryptRuleSpringBootConfiguration {
     public RuleConfiguration encryptRuleConfiguration(final ObjectProvider<Map<String, EncryptAlgorithm>> encryptors) {
         AlgorithmProvidedEncryptRuleConfiguration result = swapper.swapToObject(yamlConfig.getEncrypt());
         result.setEncryptors(Optional.ofNullable(encryptors.getIfAvailable()).orElse(Collections.emptyMap()));
+        result.setQueryWithCipherColumn(yamlConfig.getEncrypt().isQueryWithCipherColumn());
         return result;
     }
     
diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-spring/shardingsphere-encrypt-spring-namespace/src/main/java/org/apache/shardingsphere/encrypt/spring/namespace/parser/EncryptRuleBeanDefinitionParser.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-spring/shardingsphere-encrypt-spring-namespace/src/main/java/org/apache/shardingsphere/encrypt/spring/namespace/parser/EncryptRuleBeanDefinitionParser.java
index 82698a1..66cd6f4 100644
--- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-spring/shardingsphere-encrypt-spring-namespace/src/main/java/org/apache/shardingsphere/encrypt/spring/namespace/parser/EncryptRuleBeanDefinitionParser.java
+++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-spring/shardingsphere-encrypt-spring-namespace/src/main/java/org/apache/shardingsphere/encrypt/spring/namespace/parser/EncryptRuleBeanDefinitionParser.java
@@ -46,6 +46,7 @@ public final class EncryptRuleBeanDefinitionParser extends AbstractBeanDefinitio
         BeanDefinitionBuilder factory = BeanDefinitionBuilder.rootBeanDefinition(AlgorithmProvidedEncryptRuleConfiguration.class);
         factory.addConstructorArgValue(parseEncryptTableRuleConfigurations(element));
         factory.addConstructorArgValue(ShardingSphereAlgorithmBeanRegistry.getAlgorithmBeanReferences(parserContext, EncryptAlgorithmFactoryBean.class));
+        factory.addConstructorArgValue(Boolean.valueOf(element.getAttribute(EncryptRuleBeanDefinitionTag.QUERY_WITH_CIPHER_COLUMN)));
         return factory.getBeanDefinition();
     }
     
diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-spring/shardingsphere-encrypt-spring-namespace/src/main/java/org/apache/shardingsphere/encrypt/spring/namespace/tag/EncryptRuleBeanDefinitionTag.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-spring/shardingsphere-encrypt-spring-namespace/src/main/java/org/apache/shardingsphere/encrypt/spring/namespace/tag/EncryptRuleBeanDefinitionTag.java
index c1d96a1..9fed725 100644
--- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-spring/shardingsphere-encrypt-spring-namespace/src/main/java/org/apache/shardingsphere/encrypt/spring/namespace/tag/EncryptRuleBeanDefinitionTag.java
+++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-spring/shardingsphere-encrypt-spring-namespace/src/main/java/org/apache/shardingsphere/encrypt/spring/namespace/tag/EncryptRuleBeanDefinitionTag.java
@@ -41,4 +41,6 @@ public final class EncryptRuleBeanDefinitionTag {
     public static final String PLAIN_COLUMN_ATTRIBUTE = "plain-column";
     
     public static final String ENCRYPT_ALGORITHM_REF_ATTRIBUTE = "encrypt-algorithm-ref";
+    
+    public static final String QUERY_WITH_CIPHER_COLUMN = "query-with-cipher-column";
 }
diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-spring/shardingsphere-encrypt-spring-namespace/src/main/resources/META-INF/namespace/encrypt.xsd b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-spring/shardingsphere-encrypt-spring-namespace/src/main/resources/META-INF/namespace/encrypt.xsd
index bb51c3f..02a0e3f 100644
--- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-spring/shardingsphere-encrypt-spring-namespace/src/main/resources/META-INF/namespace/encrypt.xsd
+++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-spring/shardingsphere-encrypt-spring-namespace/src/main/resources/META-INF/namespace/encrypt.xsd
@@ -29,6 +29,7 @@
                 <xsd:element ref="table" maxOccurs="unbounded" />
             </xsd:sequence>
             <xsd:attribute name="id" type="xsd:string" use="required" />
+            <xsd:attribute name="query-with-cipher-column" type="xsd:boolean" default="true" />
         </xsd:complexType>
     </xsd:element>
     
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-rewrite/src/test/resources/yaml/mix/query-with-cipher.yaml b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-rewrite/src/test/resources/yaml/mix/query-with-cipher.yaml
index a48dd3e..bbffc20 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-rewrite/src/test/resources/yaml/mix/query-with-cipher.yaml
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-rewrite/src/test/resources/yaml/mix/query-with-cipher.yaml
@@ -98,6 +98,3 @@ rules:
       type: NORMAL_ENCRYPT
     assisted_query:
       type: ASSISTED_QUERY_ENCRYPT
-
-props:
-  query-with-cipher-column: true
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-rewrite/src/test/resources/yaml/mix/query-with-plain.yaml b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-rewrite/src/test/resources/yaml/mix/query-with-plain.yaml
index 2f81ee9..fb7838b 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-rewrite/src/test/resources/yaml/mix/query-with-plain.yaml
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-rewrite/src/test/resources/yaml/mix/query-with-plain.yaml
@@ -98,6 +98,4 @@ rules:
       type: NORMAL_ENCRYPT
     assisted_query:
       type: ASSISTED_QUERY_ENCRYPT
-
-props:
-  query-with-cipher-column: false
+  queryWithCipherColumn: false
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/config/properties/ConfigurationPropertyKey.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/config/properties/ConfigurationPropertyKey.java
index 5f7dd82..db41931 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/config/properties/ConfigurationPropertyKey.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/config/properties/ConfigurationPropertyKey.java
@@ -54,11 +54,6 @@ public enum ConfigurationPropertyKey implements TypedPropertyKey {
     CHECK_TABLE_METADATA_ENABLED("check-table-metadata-enabled", String.valueOf(Boolean.FALSE), boolean.class),
     
     /**
-     * Whether query with cipher column for data encrypt.
-     */
-    QUERY_WITH_CIPHER_COLUMN("query-with-cipher-column", String.valueOf(Boolean.TRUE), boolean.class),
-    
-    /**
      * Frontend database protocol type for ShardingSphere-Proxy.
      */
     PROXY_FRONTEND_DATABASE_PROTOCOL_TYPE("proxy-frontend-database-protocol-type", "", String.class),
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/config/properties/ConfigurationPropertiesTest.java b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/config/properties/ConfigurationPropertiesTest.java
index eb26058..d9bf94a 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/config/properties/ConfigurationPropertiesTest.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/config/properties/ConfigurationPropertiesTest.java
@@ -35,7 +35,6 @@ public final class ConfigurationPropertiesTest {
         props.setProperty(ConfigurationPropertyKey.SQL_SIMPLE.getKey(), Boolean.TRUE.toString());
         props.setProperty(ConfigurationPropertyKey.EXECUTOR_SIZE.getKey(), "20");
         props.setProperty(ConfigurationPropertyKey.MAX_CONNECTIONS_SIZE_PER_QUERY.getKey(), "20");
-        props.setProperty(ConfigurationPropertyKey.QUERY_WITH_CIPHER_COLUMN.getKey(), Boolean.FALSE.toString());
         props.setProperty(ConfigurationPropertyKey.PROXY_FRONTEND_FLUSH_THRESHOLD.getKey(), "20");
         props.setProperty(ConfigurationPropertyKey.PROXY_TRANSACTION_TYPE.getKey(), "XA");
         props.setProperty(ConfigurationPropertyKey.PROXY_HINT_ENABLED.getKey(), Boolean.TRUE.toString());
@@ -45,7 +44,6 @@ public final class ConfigurationPropertiesTest {
         assertTrue(actual.getValue(ConfigurationPropertyKey.SQL_SIMPLE));
         assertThat(actual.getValue(ConfigurationPropertyKey.EXECUTOR_SIZE), is(20));
         assertThat(actual.getValue(ConfigurationPropertyKey.MAX_CONNECTIONS_SIZE_PER_QUERY), is(20));
-        assertFalse(actual.getValue(ConfigurationPropertyKey.QUERY_WITH_CIPHER_COLUMN));
         assertThat(actual.getValue(ConfigurationPropertyKey.PROXY_FRONTEND_FLUSH_THRESHOLD), is(20));
         assertThat(actual.getValue(ConfigurationPropertyKey.PROXY_TRANSACTION_TYPE), is("XA"));
         assertTrue(actual.getValue(ConfigurationPropertyKey.PROXY_HINT_ENABLED));
@@ -59,7 +57,6 @@ public final class ConfigurationPropertiesTest {
         assertFalse(actual.getValue(ConfigurationPropertyKey.SQL_SIMPLE));
         assertThat(actual.getValue(ConfigurationPropertyKey.EXECUTOR_SIZE), is(0));
         assertThat(actual.getValue(ConfigurationPropertyKey.MAX_CONNECTIONS_SIZE_PER_QUERY), is(1));
-        assertTrue(actual.getValue(ConfigurationPropertyKey.QUERY_WITH_CIPHER_COLUMN));
         assertThat(actual.getValue(ConfigurationPropertyKey.PROXY_FRONTEND_FLUSH_THRESHOLD), is(128));
         assertThat(actual.getValue(ConfigurationPropertyKey.PROXY_TRANSACTION_TYPE), is("LOCAL"));
         assertFalse(actual.getValue(ConfigurationPropertyKey.PROXY_HINT_ENABLED));
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/resources/config/config-calcite.yaml b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/resources/config/config-calcite.yaml
index df5e088..62e08f1 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/resources/config/config-calcite.yaml
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/resources/config/config-calcite.yaml
@@ -83,5 +83,4 @@ rules:
         type: ROUND_ROBIN
 props:
   sql-show: true
-  query-with-cipher-column: true
 
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/resources/config/config-encrypt-query-with-plain.yaml b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/resources/config/config-encrypt-query-with-plain.yaml
index 24ffa4d..9a24976 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/resources/config/config-encrypt-query-with-plain.yaml
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/resources/config/config-encrypt-query-with-plain.yaml
@@ -45,7 +45,7 @@ rules:
       type: test
     assistedTest:
       type: assistedTest
+  queryWithCipherColumn: false
 
 props:
   sql-show: true
-  query-with-cipher-column: false
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-namespace/src/test/java/org/apache/shardingsphere/spring/namespace/governance/GovernanceEncryptNamespaceTest.java b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-namespace/src/test/java/org/apache/shardingsphere/spring/namespace/governance/GovernanceEncryptNamespaceTest.java
index 16e5f20..959befc 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-namespace/src/test/java/org/apache/shardingsphere/spring/namespace/governance/GovernanceEncryptNamespaceTest.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-namespace/src/test/java/org/apache/shardingsphere/spring/namespace/governance/GovernanceEncryptNamespaceTest.java
@@ -36,7 +36,6 @@ import java.util.Iterator;
 import java.util.Map;
 
 import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
@@ -80,9 +79,7 @@ public final class GovernanceEncryptNamespaceTest extends AbstractJUnit4SpringCo
     @Test
     public void assertProperties() {
         boolean showSQL = getProperties("encryptDataSourceGovernance").getValue(ConfigurationPropertyKey.SQL_SHOW);
-        boolean queryWithCipherColumn = getProperties("encryptDataSourceGovernance").getValue(ConfigurationPropertyKey.QUERY_WITH_CIPHER_COLUMN);
         assertTrue(showSQL);
-        assertFalse(queryWithCipherColumn);
     }
     
     private ConfigurationProperties getProperties(final String encryptDatasourceName) {
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-namespace/src/test/resources/META-INF/rdb/encrypt-governance.xml b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-namespace/src/test/resources/META-INF/rdb/encrypt-governance.xml
index c56d62e..3b07f30 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-namespace/src/test/resources/META-INF/rdb/encrypt-governance.xml
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-namespace/src/test/resources/META-INF/rdb/encrypt-governance.xml
@@ -35,7 +35,6 @@
     <governance:data-source id="encryptDataSourceGovernance" data-source-names="dbtbl_0" rule-refs="encryptRule" reg-center-ref="regCenter">
         <props>
             <prop key="sql-show">${sql_show}</prop>
-            <prop key="query-with-cipher-column">false</prop>
         </props>
     </governance:data-source>
 </beans>
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-namespace/src/test/resources/META-INF/rdb/namespace/encrypt-data-source-namespace.xml b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-namespace/src/test/resources/META-INF/rdb/namespace/encrypt-data-source-namespace.xml
index e1e58e4..adcdb96 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-namespace/src/test/resources/META-INF/rdb/namespace/encrypt-data-source-namespace.xml
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-namespace/src/test/resources/META-INF/rdb/namespace/encrypt-data-source-namespace.xml
@@ -33,7 +33,7 @@
     </encrypt:encrypt-algorithm>
     <encrypt:encrypt-algorithm id="md5_encryptor" type="MD5" />
     
-    <encrypt:rule id="encryptRule">
+    <encrypt:rule id="encryptRule" query-with-cipher-column="false">
         <encrypt:table name="t_order">
             <encrypt:column logic-column="user_id" cipher-column="user_encrypt" plain-column="user_decrypt" encrypt-algorithm-ref="aes_encryptor" />
             <encrypt:column logic-column="order_id" cipher-column="order_encrypt" plain-column="order_decrypt" encrypt-algorithm-ref="md5_encryptor" />
diff --git a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/resources/conf/server.yaml b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/resources/conf/server.yaml
index cda98cd..2e4d7c2 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/resources/conf/server.yaml
+++ b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/resources/conf/server.yaml
@@ -56,7 +56,6 @@
 #  xa-transaction-manager-type: Atomikos
 #  proxy-opentracing-enabled: false
 #  proxy-hint-enabled: false
-#  query-with-cipher-column: true
 #  sql-show: false
 #  check-table-metadata-enabled: false
 #  lock-wait-timeout-milliseconds: 50000 # The maximum time to wait for a lock
diff --git a/shardingsphere-test/shardingsphere-integration-agent-test/shardingsphere-integration-agent-test-plugins/shardingsphere-integration-agent-test-metrics/src/test/resources/docker/proxy/conf/server.yaml b/shardingsphere-test/shardingsphere-integration-agent-test/shardingsphere-integration-agent-test-plugins/shardingsphere-integration-agent-test-metrics/src/test/resources/docker/proxy/conf/server.yaml
index 2a8743c..0e749cd 100644
--- a/shardingsphere-test/shardingsphere-integration-agent-test/shardingsphere-integration-agent-test-plugins/shardingsphere-integration-agent-test-metrics/src/test/resources/docker/proxy/conf/server.yaml
+++ b/shardingsphere-test/shardingsphere-integration-agent-test/shardingsphere-integration-agent-test-plugins/shardingsphere-integration-agent-test-metrics/src/test/resources/docker/proxy/conf/server.yaml
@@ -29,5 +29,4 @@ props:
   proxy-transaction-type: LOCAL
   proxy-opentracing-enabled: false
   proxy-hint-enabled: false
-  query-with-cipher-column: true
   sql-show: true
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/db/proxy/conf/server.yaml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/db/proxy/conf/server.yaml
index 6bf0ab3..ec20dd5 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/db/proxy/conf/server.yaml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/db/proxy/conf/server.yaml
@@ -41,5 +41,4 @@ props:
   proxy-transaction-type: LOCAL
   proxy-opentracing-enabled: false
   proxy-hint-enabled: false
-  query-with-cipher-column: true
   sql-show: false
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/dbtbl_with_readwrite_splitting/proxy/conf/server.yaml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/dbtbl_with_readwrite_splitting/proxy/conf/server.yaml
index 6bf0ab3..ec20dd5 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/dbtbl_with_readwrite_splitting/proxy/conf/server.yaml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/dbtbl_with_readwrite_splitting/proxy/conf/server.yaml
@@ -41,5 +41,4 @@ props:
   proxy-transaction-type: LOCAL
   proxy-opentracing-enabled: false
   proxy-hint-enabled: false
-  query-with-cipher-column: true
   sql-show: false
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/dbtbl_with_readwrite_splitting_and_encrypt/proxy/conf/server.yaml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/dbtbl_with_readwrite_splitting_and_encrypt/proxy/conf/server.yaml
index 6bf0ab3..ec20dd5 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/dbtbl_with_readwrite_splitting_and_encrypt/proxy/conf/server.yaml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/dbtbl_with_readwrite_splitting_and_encrypt/proxy/conf/server.yaml
@@ -41,5 +41,4 @@ props:
   proxy-transaction-type: LOCAL
   proxy-opentracing-enabled: false
   proxy-hint-enabled: false
-  query-with-cipher-column: true
   sql-show: false
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/encrypt/proxy/conf/server.yaml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/encrypt/proxy/conf/server.yaml
index 6bf0ab3..ec20dd5 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/encrypt/proxy/conf/server.yaml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/encrypt/proxy/conf/server.yaml
@@ -41,5 +41,4 @@ props:
   proxy-transaction-type: LOCAL
   proxy-opentracing-enabled: false
   proxy-hint-enabled: false
-  query-with-cipher-column: true
   sql-show: false
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/readwrite_splitting/proxy/conf/server.yaml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/readwrite_splitting/proxy/conf/server.yaml
index 6bf0ab3..ec20dd5 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/readwrite_splitting/proxy/conf/server.yaml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/readwrite_splitting/proxy/conf/server.yaml
@@ -41,5 +41,4 @@ props:
   proxy-transaction-type: LOCAL
   proxy-opentracing-enabled: false
   proxy-hint-enabled: false
-  query-with-cipher-column: true
   sql-show: false
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/sharding_governance/proxy/conf/server.yaml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/sharding_governance/proxy/conf/server.yaml
index f4af299..f8858b5 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/sharding_governance/proxy/conf/server.yaml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/sharding_governance/proxy/conf/server.yaml
@@ -41,5 +41,4 @@ props:
   proxy-transaction-type: LOCAL
   proxy-opentracing-enabled: false
   proxy-hint-enabled: false
-  query-with-cipher-column: true
   sql-show: false
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/tbl/proxy/conf/server.yaml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/tbl/proxy/conf/server.yaml
index 6bf0ab3..ec20dd5 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/tbl/proxy/conf/server.yaml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/tbl/proxy/conf/server.yaml
@@ -41,5 +41,4 @@ props:
   proxy-transaction-type: LOCAL
   proxy-opentracing-enabled: false
   proxy-hint-enabled: false
-  query-with-cipher-column: true
   sql-show: false
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting_and_encrypt/rules.yaml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting_and_encrypt/rules.yaml
index 817f5cf..be29b50 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting_and_encrypt/rules.yaml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting_and_encrypt/rules.yaml
@@ -140,5 +140,3 @@ rules:
           plainColumn: number_plain
           cipherColumn: number_cipher
           encryptorName: aes_encryptor
-props:
-  query-with-cipher-column: true
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/encrypt/rules.yaml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/encrypt/rules.yaml
index 0ffd30a..cb7cc69 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/encrypt/rules.yaml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/encrypt/rules.yaml
@@ -35,5 +35,3 @@ rules:
           plainColumn: number_plain
           cipherColumn: number_cipher
           encryptorName: aes_encryptor
-props:
-  query-with-cipher-column: true