diff --git a/dbm-ui/frontend/src/views/db-manage/common/permission/components/mongo/CreateRule.vue b/dbm-ui/frontend/src/views/db-manage/common/permission/components/mongo/CreateRule.vue index a6cc54d791..bae7938c40 100644 --- a/dbm-ui/frontend/src/views/db-manage/common/permission/components/mongo/CreateRule.vue +++ b/dbm-ui/frontend/src/views/db-manage/common/permission/components/mongo/CreateRule.vue @@ -212,6 +212,21 @@ return _.every(dbs, (item) => !!item.trim()); }, }, + { + required: true, + trigger: 'blur', + message: t('访问 DB 名不允许为 admin'), + validator: (value: string) => /^(?!admin$).*/.test(value), + }, + { + required: true, + trigger: 'blur', + message: t('请输入访问DB名_以字母开头_支持字母_数字_下划线_多个使用英文逗号_分号或换行分隔'), + validator: (value: string) => { + const dbs = value.split(/[\n;,]/); + return _.every(dbs, (item) => (!item ? true : /^[A-Za-z][A-Za-z0-9_]*$/.test(item))); + }, + }, { required: true, trigger: 'blur', @@ -237,21 +252,6 @@ }); }, }, - { - required: true, - trigger: 'blur', - message: t('访问 DB 名不允许为 admin'), - validator: (value: string) => /^(?!admin$).*/.test(value), - }, - { - required: true, - trigger: 'blur', - message: t('请输入访问DB名_以字母开头_支持字母_数字_下划线_多个使用英文逗号_分号或换行分隔'), - validator: (value: string) => { - const dbs = value.split(/[\n;,]/); - return _.every(dbs, (item) => (!item ? true : /^(?:[a-zA-Z].*$)/.test(item))); - }, - }, ], }; diff --git a/dbm-ui/frontend/src/views/db-manage/common/permission/components/mysql/create-rule/components/RuleSettings.vue b/dbm-ui/frontend/src/views/db-manage/common/permission/components/mysql/create-rule/components/RuleSettings.vue index b1dba1cd09..4a664d8672 100644 --- a/dbm-ui/frontend/src/views/db-manage/common/permission/components/mysql/create-rule/components/RuleSettings.vue +++ b/dbm-ui/frontend/src/views/db-manage/common/permission/components/mysql/create-rule/components/RuleSettings.vue @@ -254,7 +254,7 @@ return _.every(dbs, (item) => !item ? true - : /^%?[a-zA-Z0-9]([a-zA-Z0-9_-])*[a-zA-Z0-9]$/.test(item) && /^(?!stage_truncate).*/.test(item), + : /^[a-zA-Z0-9%]([a-zA-Z0-9_%-])*[a-zA-Z0-9%]$/.test(item) && /^(?!stage_truncate).*/.test(item), ); }, }, diff --git a/dbm-ui/frontend/src/views/db-manage/common/permission/components/sqlserver/CreateRule.vue b/dbm-ui/frontend/src/views/db-manage/common/permission/components/sqlserver/CreateRule.vue index a55788a42d..83fb4b1c92 100644 --- a/dbm-ui/frontend/src/views/db-manage/common/permission/components/sqlserver/CreateRule.vue +++ b/dbm-ui/frontend/src/views/db-manage/common/permission/components/sqlserver/CreateRule.vue @@ -188,6 +188,15 @@ return _.every(dbs, (item) => !!item.trim()); }, }, + { + required: true, + trigger: 'blur', + message: t('请输入访问DB名_以字母开头_支持 % 通配符 或 % 单独使用代表ALL_多个使用英文逗号_分号或换行分隔'), + validator: (value: string) => { + const dbs = value.split(/[\n;,]/); + return _.every(dbs, (item) => (!item ? true : /^(?:[a-zA-Z].*|%$)/.test(item))); + }, + }, { required: true, trigger: 'blur', @@ -213,15 +222,6 @@ }); }, }, - { - required: true, - trigger: 'blur', - message: t('请输入访问DB名_以字母开头_支持 % 通配符 或 % 单独使用代表ALL_多个使用英文逗号_分号或换行分隔'), - validator: (value: string) => { - const dbs = value.split(/[\n;,]/); - return _.every(dbs, (item) => (!item ? true : /^(?:[a-zA-Z].*|%$)/.test(item))); - }, - }, ], };