授予 mariadb 用户创建数据库权限
grant create database privilege to mariadb user
我知道在数据库管理中,使用 root 用户是一种不好的行为,我正在设置一个具有基本权限的自定义用户(创建数据库、删除数据库、对所有新创建的数据库的所有访问权限等) .
我创建了一个用户 antoine
,它应该是用于登录 mariadb server
.
的基本用户
问题是,我不知道如何授予 create database xxx
、drop 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)
我不知道你说的“没用”是什么意思。这不是描述问题的好方法。你执行的命令是什么?当你执行该命令时发生了什么?它报错了吗?如果是,错误是什么?
我知道在数据库管理中,使用 root 用户是一种不好的行为,我正在设置一个具有基本权限的自定义用户(创建数据库、删除数据库、对所有新创建的数据库的所有访问权限等) .
我创建了一个用户 antoine
,它应该是用于登录 mariadb server
.
问题是,我不知道如何授予 create database xxx
、drop 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)
我不知道你说的“没用”是什么意思。这不是描述问题的好方法。你执行的命令是什么?当你执行该命令时发生了什么?它报错了吗?如果是,错误是什么?