Hi community,

Currently, ShardingSphere encrypt rule contains many configuration items,
the complete configuration items are as follows.

rules:
- !ENCRYPT
  tables:
    <table_name> (+): # Encrypt table name
      columns:
        <column_name> (+): # Encrypt logic column name
          plainColumn (?): # Plain column name
          cipherColumn: # Cipher column name
          encryptorName: # Cipher encrypt algorithm name
          assistedQueryColumn (?):  # Assisted query column name
          assistedQueryEncryptorName:  # Assisted query encrypt algorithm
name
          likeQueryColumn (?):  # Like query column name
          likeQueryEncryptorName:  # Like query encrypt algorithm name
      queryWithCipherColumn(?): # The current table whether query with
cipher column for data encrypt.

  # Encrypt algorithm configuration
  encryptors:
    <encrypt_algorithm_name> (+): # Encrypt algorithm name
      type: # Encrypt algorithm type
      props: # Encrypt algorithm properties
        # ...

  queryWithCipherColumn: # Whether query with cipher column for data
encrypt. User you can use plaintext to query if have
Some of configuration items are necessary for encrypt feature, such as:
cipherColumn, encryptorName, assistedQueryColumn,
assistedQueryEncryptorName, likeQueryColumn and likeQueryEncryptorName.
These configuration items allow users to configure encrypt columns and
encrypt algorithms.

Some other configuration items, such as plainColumn and different levels of
queryWithCipherColumn, have nothing to do with the encrypt feature, but
only to meet the switching of business traffic. Maintaining plainColumn and
different levels of queryWithCipherColumn has brought great challenges to
ShardingSphere, resulting in too complicated SQL rewriting logic.
Currently, encrypt SQL rewriting logic is already very complicated.

In order to improve the maintainability of the encrypt feature, it is time
to simplify the encrypt configuration and remove plainColumn and
queryWithCipherColumn. The work of switching business traffic is handed
over to users themselves, while ShardingSphere focuses on increasing the
core capabilities of encrypt.

Everyone is welcome to participate in the discussion and express their
views. Thank you.

For more details, you can also refer github issue -
https://github.com/apache/shardingsphere/issues/25383.

Best regards,
Zhengqiang
——————————————————————
Zhengqiang Duan (duanzhengqi...@apache.org)
Apache ShardingSphere PMC
GitHub@strongduanmu

Reply via email to