gpt4 book ai didi

java - MySQL:将数据库的所有权限授予用户,但用户甚至看不到数据库

转载 作者:行者123 更新时间:2023-11-29 05:14:30 24 4
gpt4 key购买 nike

问题:

我在 Ubuntu 15.10 上使用本地 MySQL 数据库。

我有两个用户:root 用户和一个名为 java 的用户,密码为 password。后者用于 Java JPA 测试应用程序。

我需要 'java'@'localhost' 拥有 videogames 数据库的所有权限(我不关心安全性)。


我做了什么

我使用 mysql -u root -p 进入控制台,然后执行 GRANT ALL PRIVILEGES ON mydb.videogames TO 'java'@'localhost' WITH GRANT OPTION .

然后我执行 mysql -u java -pshow databases,显示用户 java 可以访问但没有访问的少数数据库' t 显示 videogames 数据库。

连接 Java/JPA 应用程序会引发异常 Access denied for user 'java'@'localhost' to database 'videogames'(错误代码:1044)


我试过:

  • 使用 GRANT OPTION 将 mydb.videogames 上的所有权限授予 'java'@'%'
  • GRANT ALL PRIVILEGES ON mydb.* TO 'java'@'%' WITH GRANT OPTION
  • FLUSH PRIVILEGES
  • sudo service restart mysql
  • DROP USER ''

SHOW GRANTS 的转储:

  • 授予 java@%
    • GRANT USAGE ON *.* TO 'java'@'%'
    • 授予“mydb”上的所有权限。* 授予“java”@“%”权限
    • 使用授予选项将“mydb”.“videogames”上的所有权限授予“java”@“%”
  • 授予 java@localhost
    • GRANT USAGE ON *.* TO 'java'@'localhost' IDENTIFIED BY PASSWORD '*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19'
    • GRANT ALL PRIVILEGES ON 'javabase'.* TO 'java'@'localhost'
    • 授予“mydb”上的所有权限。* 授予“java”@“localhost”权限
    • 使用 GRANT OPTION 将 'mydb'.'videogames' 上的所有权限授予 'java'@'localhost'

转储 SELECT user, host FROM mysql.user; :


+----------------+------------------------+
|用户 |主持人 |
+----------------+------------------------+
| Java | % |
|根 | 127.0.0.1 |
|根 |::1 |
|根 | (我电脑的名称)|
| debian-系统维护 |本地主机 |
| Java |本地主机 |
|根 |本地主机 |
+----------------+------------------------+


感谢任何帮助。

最佳答案

视频游戏是一个数据库,而不是一个表格。

点前是数据库,点后是表。

所以这是正确的:

GRANT ALL PRIVILEGES ON videogames.* TO 'java'@'localhost' WITH GRANT OPTION

关于java - MySQL:将数据库的所有权限授予用户,但用户甚至看不到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35047259/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com