JAVA如何存储mysql登录信息

标签 java mysql security

环境

我有一个 java 应用程序需要访问 mysql 数据库来加载和保存数据,而加载/保存不能通过写入磁盘来进行,所以它必须通过数据库。

我正在阅读有关 JNDI 的内容,但我不确定这是否会有所帮助,因为我看到的每个示例都是针对 java servlet 的,而我的目标是使用它在 java 独立应用程序中。

问题

  • 存储 mysql 用户名和密码的最佳方式是什么,以便所有客户端都可以访问数据库,但仍然保护登录信息,以免我的程序被反编译,有人使用mysql 登录以删除我所有的表?

  • 你们会推荐什么?我希望这尽可能安全,我愿意接受任何建议。

  • 只会在数据库上执行少数语句,而且这些语句是准备好的语句中使用的硬编码字符串,所以我认为这是安全的还是不安全的?

  • 但我的主要问题是保护数据库登录信息。

最佳答案

您有多种选择:

  • 以尽可能低的权限使用凭据。这意味着该用户将能够 INSERT 但不能 DROP 或 DELETE
  • 通过创建网络服务(或其他远程技术)将程序和写入数据库的代码分开
  • 仅使用 PROCEDURE 和 FUNCTION 来联系数据库并仅将它们授予用户。通过这样做,您将登录到数据库,除了调用过程和函数之外不允许执行任何操作。

关于JAVA如何存储mysql登录信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34658707/

相关文章:

java - 十进制格式的问题

java - 让 Hibernate 忽略未映射的实例变量

javascript - 是否可以在不刷新窗口的情况下进行 "password"验证?

java - 自定义 RecordReader 初始化未调用

java - 由sequencegenerator生成的主键错误地写入数据库

java - Spring 启动-com.mysql.jdbc.spring启动异常.jdbc4.MySQLSyntaxErrorException : Unknown column 'customer0_.email' in 'field list'

javascript - 分布式任务调度,作业队列

javascript - 使用密码连接数据库的最佳方式是什么?

security - 使用物理 postgres 用户而不是 "logical"用户登录系统

php - 用户数据库中的隐私和安全