授予 mariadb 用户创建数据库权限

Dat*_*rth 7 mysql database privileges mariadb

我知道在数据库管理中,使用 root 用户是一种不好的行为,我正在设置一个具有基本权限的自定义用户(创建数据库、删除数据库、对所有新创建的数据库的所有访问权限等)。
我已经创建了一个用户,antoine该用户应该是用于登录mariadb server.

问题是,我不知道如何授予管理权限,例如create database xxxdrop database xxx等等...文档解释说要授予权限,您可以运行以下命令:

GRANT role ON database.table TO user@host
Run Code Online (Sandbox Code Playgroud)

但是,当涉及到服务器权限时,我该怎么办呢?我已经尝试过*.*database.table它不起作用。

Rig*_*lly 7

创建一个用户,然后授予该用户您希望他们拥有的权限,如下所示。

CREATE USER 'antoine'@'localhost' IDENTIFIED VIA mysql_native_password USING 'a-password';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON *.* TO 'antoine'@'localhost'; 
Run Code Online (Sandbox Code Playgroud)


Bil*_*win 6

演示:

我创建了一个具有连接权限的用户,但没有其他权限。

mysql> create user 'testy'@'%' identified by 'testy';
Query OK, 0 rows affected (0.02 sec)
Run Code Online (Sandbox Code Playgroud)

我以该用户身份登录,发现他们没有创建模式(数据库的同义词)的权限。

$ mysql -utesty -ptesty

mysql> create schema test2;
ERROR 1044 (42000): Access denied for user 'testy'@'%' to database 'test2'
Run Code Online (Sandbox Code Playgroud)

以我的管理员用户身份登录并授予他们权限:

mysql> grant create on *.* to 'testy'@'%';
Query OK, 0 rows affected (0.01 sec)
Run Code Online (Sandbox Code Playgroud)

现在我的测试用户可以做到:

$ mysql -utesty -ptesty

mysql> create schema test2;
Query OK, 1 row affected (0.01 sec)
Run Code Online (Sandbox Code Playgroud)

我不知道你说的“没用”是什么意思。这不是描述问题的好方法。你执行的命令是什么?当您执行该命令时发生了什么?有没有报错?如果是这样,错误是什么?