当前位置: 首页 > 面试题库 >

如何在不暴露密码的情况下连接到需要密码的数据库?

谷梁玺
2023-03-14
问题内容

我正在创建一个应用程序,并且需要连接到数据库。数据库需要登录名/密码,因此应用程序可以执行选择和插入之类的操作。

在应用程序中,我需要使用登录名和密码连接到数据库,因此应用程序可以自由地在数据库上执行某些任务。
我的问题是:如何在不暴露密码的情况下存储和使用密码来连接数据库?

我不能简单地使用哈希或加密来存储密码,因为数据库必须能够识别密码(我认为大多数或所有数据库都必须以纯文本形式接收密码)。

注意:连接是由应用程序进行的。无需人工输入即可进行连接。

(编辑)有关该应用程序的更多信息:它是一个使用servlets /
jsp的Web应用程序。数据库位于应用程序的同一服务器上。该应用程序的用户是没有完全管理权限的默认用户,但是它可以插入/删除行,并且可以执行涉及表中查询和数据修改的大多数操作。


问题答案:

完成此操作的通常方法是将用户名/密码外部化为在运行时读取的属性/配置文件(无论是否使用本机JDBC
/ JNDI / CDI / J2EE数据源/等)。

该文件由系统管理员通过操作系统的安全性保护。

与应用程序代码相比,操作系统具有更好的保护工具。



 类似资料:
  • 问题内容: 我尝试的第一件事是创建一个静态库,但后来我发现尚不支持该库。Apple Xcode Beta 4发行说明: Xcode不支持构建包含Swift代码的静态库。(17181019) 我希望Apple能够在下一个Beta版本或GA版本中添加它,但我在他们的博客上阅读了以下内容: 在确保应用程序的运行时兼容性的同时,Swift语言本身将继续发展,并且二进制接口也将发生变化。为了安全起见,应使用

  • 我正在寻找一种方法来保护PDF文件的密码在飞行中,而不必存储用户的密码在明文。 我想做的是根据PDF规范生成用户和所有者密钥,并使用这些密钥加密文档的字符串和流。是否存在支持此功能的库?

  • 首先,我不是Docker新手(或专家),只是不确定如何在不炸毁我当前容器的情况下完成此操作。 我在玩Postgres,并使用这个命令构建了一个容器,但没有意识到它不会将Postgres暴露在Docker之外 我希望其他系统能够访问这些数据。我不想删除容器,因为我已经做了相当多的配置。 在停止实例后,我尝试过在 中编辑容器 文件,但是在启动容器备份后,该文件被覆盖。 将端口暴露在容器之外的最佳实践是

  • 问题内容: 我想知道在不提示输入密码的情况下执行数据库mysqldump的命令。 原因:我想运行一个cron作业,该作业每天执行一次mysqldump数据库的转储。因此,出现提示时,我将无法插入密码。 我该如何解决? 问题答案: 由于您正在使用Ubuntu,因此您所要做的只是在主目录中添加一个文件,这将禁用mysqldump密码提示。这是通过创建文件来完成的(权限需要为600)。 将此添加到.my

  • 有没有办法让用户在重置密码时重置其firebase密码,而无需实际验证帐户? 最初创建帐户时,用户信息中的“已验证”设置为false,一旦创建帐户,我们将收到一封带有验证帐户url的电子邮件。但是,当用户“忘记密码”时,密码重置邮件将发送给用户,当用户实际重置密码时,firebase userinfo“验证”设置为true。

  • 我正在尝试将PostgreSQL数据库连接到pgadmin。 我所掌握的关于数据库的唯一信息是: postgres:/candidate.company.org/company 用户名:banana 密码:AAABBBCCC 无法将主机名“postgres://candidate.company.org/company”转换为地址:nodename或servname已提供或未知