【问题标题】:How to block creation of MySQL database with name that matches a certain pattern如何阻止创建名称与特定模式匹配的 MySQL 数据库
【发布时间】:2021-03-10 19:35:11
【问题描述】:

有没有办法配置 MySQL 以防止创建名称与特定条件匹配的数据库模式?理想情况下,我想防止创建与模式匹配的名称,但如果有解决方案来阻止 匹配模式的名称,我想我也可以做到这一点。例如,我想阻止创建名称以数字开头的模式。

【问题讨论】:

  • MsSQL 含义...MySQL?
  • 除了 DBA 之外,还有谁在您的系统上创建表?允许访问随机的人听起来非常冒险和不明智,即使有这样的某种“健全性检查”。
  • @tadman 是的。 MySQL。是一个错字谢谢。
  • @tadman,这是一个开发数据库,​​模式是根据开发人员的主机名自动创建的。在某些情况下,缺少开发人员主机名,并且将使用 IP 地址创建数据库。我希望数据库创建失败,以便开发人员记得修复丢失的主机名问题。
  • 如果在数据库级别没有简单的方法可以做到这一点,我只会要求维护调用架构创建的自动代码的人员在那里设置条件。

标签: mysql sql mysql-workbench


【解决方案1】:

如果您grant the CREATE privilege 给给定用户,他们可以创建表或模式。无法按命名约定过滤它们。

您可以创建一个接受字符串参数的存储过程。然后根据正则表达式检查字符串,如果没问题,则在准备好的语句中使用该字符串。

这样你可以将CREATE权限授予过程的所有者,然后允许用户调用过程。

如果您不想使用存储过程,那么也许可以实现一个 API 来做到这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-29
    • 1970-01-01
    • 1970-01-01
    • 2019-11-21
    • 2016-04-14
    • 2010-10-05
    相关资源
    最近更新 更多