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



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

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

GRANT role ON database.table TO user@host

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

创建一个用户,然后像这样授予该用户您希望他们拥有的权限。

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'; 

演示:

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

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

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

$ mysql -utesty -ptesty
mysql> create schema test2;
ERROR 1044 (42000): Access denied for user 'testy'@'%' to database 'test2'

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

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

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

$ mysql -utesty -ptesty
mysql> create schema test2;
Query OK, 1 row affected (0.01 sec)

我不知道你说的";它不起作用"这不是描述问题的好方法。你执行的命令是什么?你发出命令时发生了什么?它出错了吗?如果是,错误是什么?

最新更新