### Description

#27647 has introduced filtering for invalid schemas in Hive hook based on the characters `;` and `!`. I'm wondering if a more generic filtering could be introduced, e.g. one that adheres to the regex `[^a-z0-9_]`, since Hive schemas (and table names) can only contain alphanumeric characters and the character `_`.

Note: since the Hive metastore [stores schemas and tables in lowercase](https://stackoverflow.com/questions/57181316/how-to-keep-column-names-in-camel-case-in-hive/57183048#57183048), checking against `[^a-z0-9_]` is probably better than `[^a-zA-Z0-9_]`.

### Use case/motivation

Ensure that Hive schemas used in `apache-airflow-providers-apache-hive` hooks contain no invalid characters.

### Related issues

_No response_

### Are you willing to submit a PR?

- [X] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

"0: jdbc:hive2://localhost:10000/default> ",
            "0: jdbc:hive2://localhost:10000/default> ",
            "Closing: 0: jdbc:hive2://localhost:10000/default",
            "",
        ]
        with mock.patch.dict(
            "os.environ",
            {
                dag_id_ctx_var_name: "test_dag_id",
                task_id_ctx_var_name: "test_task_id",
                execution_date_ctx_var_name: "test_execution_date",
                dag_run_id_ctx_var_name: "test_dag_run_id",
            },
        ):
            hook = MockHiveCliHook()
            mock_popen.return_value = MockSubProcess(output=mock_output)
            output = hook.run_cli(hql=hql, hive_conf={"key": "value"})
            process_inputs = " ".join(mock_popen.call_args_list[0][0][0])
            assert "value" in process_inputs
            assert "test_dag_id" in process_inputs
            assert "test_task_id" in process_inputs
            assert "test_execution_date" in process_inputs
            assert "test_dag_run_id" in process_inputs
            assert "value" in output
            assert "test_dag_id" in output
            assert "test_task_id" in output
            assert "test_execution_date" in output
            assert "test_dag_run_id" in output
    @mock.patch("airflow.providers.apache.hive.hooks.hive.HiveCliHook.run_cli")
    def test_load_file_without_create_table(self, mock_run_cli):