首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在MySQL中创建授权中的通配符

在MySQL中创建授权中的通配符
EN

Database Administration用户
提问于 2016-05-01 19:23:22
回答 1查看 11.9K关注 0票数 6

MySQL允许对数据库名使用通配符,以便允许用户只对数据库的子集进行操作:

代码语言:javascript
代码运行次数:0
运行
复制
GRANT ALL PRIVILEGES ON `foobar%`.* TO 'user'@'%' IDENTIFIED BY 'somepassword';

是否有同样的方法对创建授权进行允许(cf )。(上面的示例) user只创建名称以foobar开头的数据库?

否则会说:创建授权是全局的(即,具有此权限的用户允许创建任何数据库,不受限制),还是可以以某种方式加以限制?

EN

回答 1

Database Administration用户

回答已采纳

发布于 2016-06-07 07:03:53

是。只需添加CREATE特权:

代码语言:javascript
代码运行次数:0
运行
复制
GRANT CREATE ON `foobar%`.* TO 'foobaruser'@'%' IDENTIFIED BY 'foobarpass';

测试一下:

代码语言:javascript
代码运行次数:0
运行
复制
foobaruser$ mysql
mysql> create database `foobar_one`;
Query OK, 1 row affected (0.00 sec)

mysql> create database `barfoo_one`;
ERROR 1044 (42000): Access denied for user 'foobaruser'@'localhost' to database 'barfoo_one'

请注意,您需要转义_ (下划线),因为它在模式中的作用类似于one character。因此,foobar\_将与foobar1foobarZ相匹配。

票数 10
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/137124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档