diff --git a/superset/db_engine_specs/base.py b/superset/db_engine_specs/base.py index 261bedee94da..8f4ed7638c01 100644 --- a/superset/db_engine_specs/base.py +++ b/superset/db_engine_specs/base.py @@ -1410,7 +1410,8 @@ def build_sqlalchemy_uri( parameters: BasicParametersType, encryted_extra: Optional[Dict[str, str]] = None, ) -> str: - query = parameters.get("query", {}) + # make a copy so that we don't update the original + query = parameters.get("query", {}).copy() if parameters.get("encryption"): if not cls.encryption_parameters: raise Exception("Unable to build a URL with encryption enabled") @@ -1433,6 +1434,11 @@ def get_parameters_from_uri( cls, uri: str, encrypted_extra: Optional[Dict[str, Any]] = None ) -> BasicParametersType: url = make_url(uri) + query = { + key: value + for (key, value) in url.query.items() + if (key, value) not in cls.encryption_parameters.items() + } encryption = all( item in url.query.items() for item in cls.encryption_parameters.items() ) @@ -1442,7 +1448,7 @@ def get_parameters_from_uri( "host": url.host, "port": url.port, "database": url.database, - "query": url.query, + "query": query, "encryption": encryption, }