### Apache Airflow version

2.3.3 (latest released)

### What happened

I change my DAG from 
```python
with DAG(
   'test',
    access_control={'team':{'can_edit','can_read'}},
) as dag:
   ...
```

to

```python
with DAG(
   'test',
) as dag:
   ...
```

Remove `access_control` arguments, Scheduler can't sync permissions to db.

If we write code like this,

```python
with DAG(
   'test',
   access_control = {'team': {}}
) as dag:
   ...
```

It works.

### What you think should happen instead

It should clear permissions to `test` DAG on Role `team`.

I think we should give a consistent behaviour of permissions sync. If we give `access_control` argument, permissions assigned in Web will clear when we update DAG file.

### How to reproduce

_No response_

### Operating System

CentOS Linux release 7.9.2009 (Core)

### Versions of Apache Airflow Providers

```
airflow-code-editor==5.2.2
apache-airflow==2.3.3
apache-airflow-providers-celery==3.0.0
apache-airflow-providers-ftp==3.0.0
apache-airflow-providers-http==3.0.0
apache-airflow-providers-imap==3.0.0
apache-airflow-providers-microsoft-psrp==2.0.0
apache-airflow-providers-microsoft-winrm==3.0.0
apache-airflow-providers-mysql==3.0.0
apache-airflow-providers-redis==3.0.0
apache-airflow-providers-samba==4.0.0
apache-airflow-providers-sftp==3.0.0
apache-airflow-providers-sqlite==3.0.0
apache-airflow-providers-ssh==3.0.0
```

### Deployment

Virtualenv installation

### Deployment details

_No response_

### Anything else

_No response_

### Are you willing to submit 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)

import_errors = DagBag._sync_to_db(dags=self.dags, processor_subdir=processor_subdir, session=session)
        self.import_errors.update(import_errors)
    @classmethod
    @provide_session
    def _sync_perm_for_dag(cls, dag: DAG, session: Session = NEW_SESSION):
        """Sync DAG specific permissions, if necessary"""
        from airflow.security.permissions import DAG_ACTIONS, resource_name_for_dag
        from airflow.www.fab_security.sqla.models import Action, Permission, Resource
        root_dag_id = dag.parent_dag.dag_id if dag.parent_dag else dag.dag_id
        def needs_perms(dag_id: str) -> bool:
            dag_resource_name = resource_name_for_dag(dag_id)
            for permission_name in DAG_ACTIONS:
                if not (
                    session.query(Permission)
                    .join(Action)
                    .join(Resource)
                    .filter(Action.name == permission_name)
                    .filter(Resource.name == dag_resource_name)
                    .one_or_none()
                ):
                    return True
            return False
        if dag.access_control or needs_perms(root_dag_id):
            cls.logger().debug("Syncing DAG permissions: %s to the DB", root_dag_id)
            from airflow.www.security import ApplessAirflowSecurityManager
            security_manager = ApplessAirflowSecurityManager(session=session)
            security_manager.sync_perm_for_dag(root_dag_id, dag.access_control)