具有全局权限的MariaDB用户无法访问数据库

iq3niunx  于 5个月前  发布在  其他
关注(0)|答案(1)|浏览(54)

我的问题如下:
我在MariaDB中创建了一个用户,他拥有全局权限,命令如下:
第一个月
用户可以成功地创建一个新的数据库,让我们称之为“newdb”。
问题是用户没有访问此数据库的权限,当尝试在他使用命令创建的数据库上为自己给予权限时:
GRANT ALL PRIVILEGES ONnewdb.* TO 'user'@'localhost' WITH GRANT OPTION;
我得到了一个1044错误(access denied for user)。这里有什么问题吗?一个对所有东西都有全局权限的用户应该可以访问所有数据库,对吗?
稍后,我想用user创建另一个用户,并给予该用户对新创建的数据库的权限

CREATE USER 'anotheruser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON `newdb` . * TO 'anotheruser'@'localhost' IDENTIFIED BY 'password';

字符串
我特别避免使用root来解决这个问题,因为这个用户将被外部软件使用。
如果你能帮忙的话,我将不胜感激。
Mariadb版本11.1.2
到目前为止,我基本上已经尝试了我发现的所有东西,我现在唯一能想到的是,要么是MariaDB文档中没有提到的某种限制,要么是这是一个bug

cnh2zyt3

cnh2zyt31#

我已经发现了问题。mariadb在docker容器中运行,其他容器试图访问它。Docker为这些容器创建了一个网络,而不是IP地址,容器之间的通信通过容器的名称进行。为mariadb容器打开的端口向localhost打开,但是当从另一个容器访问数据库时,localhost被完全跳过并建立直接连接,因此连接不是以“user”@“localhost”的方式发生,而是以“%”的方式发生。

相关问题