MySQL 允许在数据库名称中使用通配符,以允许用户仅对数据库的子集进行操作:
GRANT ALL PRIVILEGES ON `foobar%`.* TO 'user'@'%' IDENTIFIED BY 'somepassword';
有没有办法对 CREATE 授权做同样的事情,以允许(参见上面的示例)user
只创建名称以 开头的数据库foobar
?
否则说:CREATE 授予是全局的(即具有此权限的用户可以无限制地创建任何数据库)还是可以以某种方式受到限制?
MySQL 允许在数据库名称中使用通配符,以允许用户仅对数据库的子集进行操作:
GRANT ALL PRIVILEGES ON `foobar%`.* TO 'user'@'%' IDENTIFIED BY 'somepassword';
有没有办法对 CREATE 授权做同样的事情,以允许(参见上面的示例)user
只创建名称以 开头的数据库foobar
?
否则说:CREATE 授予是全局的(即具有此权限的用户可以无限制地创建任何数据库)还是可以以某种方式受到限制?
是的。只需添加 CREATE 权限:
并且只是测试它:
请注意,您需要转义
_
(下划线),因为它one character
在模式中的行为。所以 «`foobar_`» 将匹配foobar1
orfoobarZ
。