为用户创建数据库权限 - Mysql访问优先级

时间:2018-06-01 13:50:53

标签: mysql

我想在MySQL上创建多个用户,并允许他们创建数据库并访问仅由他们创建的数据库。有没有办法做到这一点? 如果是的话,我需要给予什么许可?

1 个答案:

答案 0 :(得分:0)

您可以只创建数据库并将数据库的所有权限授予特定用户,而不是向用户提供“create database”权限。这就是我在我的世界中使用的东西。我不认为在MySQL中可以使用“创建数据库”权限。

使用以下方法可以控制数据库级别,因为用户可以在具有权限的特定数据库中执行任何操作,而不是在实例级别(意味着他们无法创建垃圾数据库)。

Friday 28> mysql -uroot -p
mysql> create user test identified by 'test';
mysql> create database x1;
mysql> grant all privileges on x1.* to 'test'@'%';

Friday 28> mysql -utest -p
Enter password: 

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| x1                 |
+--------------------+
2 rows in set (0.00 sec)

mysql> use x1;
Database changed
mysql> create table test(c int);
seQuery OK, 0 rows affected (0.44 sec)

mysql> select * from test;
Empty set (0.00 sec)