Run DDL as a readonly identity and assert it is denied with `permission denied`.
(state: &SharedState, sql: &str)
| 110 | |
| 111 | /// Run DDL as a readonly identity and assert it is denied with `permission denied`. |
| 112 | pub async fn assert_readonly_denied(state: &SharedState, sql: &str) { |
| 113 | let viewer = readonly_user(); |
| 114 | let err = ddl_err(state, &viewer, sql).await; |
| 115 | assert!(err.contains("permission denied"), "{err}"); |
| 116 | } |
| 117 | |
| 118 | /// Cluster-admin identity (no implicit RLS bypass, no cross-DB data access). |
| 119 | pub fn cluster_admin_user() -> AuthenticatedIdentity { |