Sam Asked: 2009-10-20 15:45:16 +0800 CST2009-10-20 15:45:16 +0800 CST 2009-10-20 15:45:16 +0800 CST DBA 是否应该存储和检索密码 772 DBA 应该记录应用程序登录的密码,还是应该由开发人员/分析师负责?应用程序登录是指应用程序用于访问数据库的登录。每个应用程序通常会有一个。 我不是指为系统用户创建的用户帐户密码。 sql-server 8 个回答 Voted Best Answer Nic 2009-10-20T16:37:25+08:002009-10-20T16:37:25+08:00 应用程序开发人员有责任跟踪他们访问数据库所需的凭据。原因是应用程序需要该密码才能完成工作,但无论如何数据库都会继续运行。 如果开发人员丢失了密码,DBA 的工作就是重置密码并提供新密码,但他们绝对不应该保留明文版本。想想系统管理员和用户。系统管理员不知道用户的密码,只负责重置和提供密码。 mrdenny 2009-10-20T22:29:24+08:002009-10-20T22:29:24+08:00 我的 .02 美元在这里。 DBA 应该跟踪应用程序密码。开发人员不应该拥有生产密码或 QA 密码。DBA 应该持有所有这些密钥,并根据需要将它们交给执行部署的系统管理员。 就我个人而言,我有一个小网络应用程序,我在几家公司之前构建了它,我发现它很方便。它允许您将用户名和密码放入数据库,数据库以安全的加密形式存储密码。记录对应用程序的所有访问以进行 SOX 审核。 通过应用程序授予对帐户的访问权限,因此作为 DBA,我可以创建一个帐户并授予开发人员对应用程序内帐户的读取访问权限,以便他们可以看到开发密码。QA 和生产密码的系统管理员也是如此。 Fatherjack 2009-10-20T23:35:36+08:002009-10-20T23:35:36+08:00 在我看来,DBA 不需要知道或参与他们不需要知道的任何密码来执行他们的工作。您可以在忘记密码时帮助他们重置密码,提醒他们未更改/强制执行更改周期和其他类似的外围功能,但您不负责密码监控。如果您正在监视密码,它还可以让您了解/访问密码。 我建议每个应用程序都有一个应用程序管理员为他们的团队完成这项工作,所有这些都是“本地”管理的。只要监控帐户/密码组合的使用情况,以便没有人可以匿名访问数据,那么它应该可以正常工作。 Mike Thien 2009-10-21T11:50:12+08:002009-10-21T11:50:12+08:00 与上面的一些帖子一样,DBA 真的不应该关心或担心用户/密码。不幸的是,有人需要在以后的某个时候检索这些信息。我们开发了一个小型应用程序,它将使用我们自己的算法根据用户名创建密码。我们的 DBA 拥有自己的客户端工具,如果有人要求输入密码,我们可以为他们找回密码。如果将来应用程序受到威胁,我们可以随时更改算法和/或重置密码。我们仅将其用于应用程序帐户。 John Gardeniers 2009-10-20T17:12:05+08:002009-10-20T17:12:05+08:00 我们无法给您一个明确的答案,因为不同的答案将适用于不同的组织。您确实应该在内部进行此讨论,以理清谁应对组织内的信息负责。如果你不能就这样微不足道的事情达成协议,你可能还有其他问题需要解决。在这种情况下,我们认为应该完全没有区别。 Roy 2009-10-20T23:58:50+08:002009-10-20T23:58:50+08:00 这是一个很好的问题,并且可能有与 Oracle DBA 一样多的答案。就我个人而言,我不喜欢维护这样的列表,并且会根据需要简单地设置一个新密码 - 并且可能在我完成后以加密形式设置回原始密码。 user23193 2009-10-20T17:07:34+08:002009-10-20T17:07:34+08:00 我认为他们可以。我在一家公司工作了大约 5 年,我们在那里明确定义了角色——应用程序开发人员创建应用程序并设计数据库,DBA 使用应用程序用来访问数据库的登录名测试数据库。他们确保该用户帐户所做的一切都正常运行,并检查了数据库的性能。他们做了比我们更多的测试。他们还确保所有其他用户都被锁定在数据库之外,因此在该用户下发生的任何事情都仅限于少数人。 所以我实际上认为允许 DBA 拥有这些用户名/密码很重要。就像系统管理员可以访问“测试”帐户来检查网络上的某些功能一样。 Peter 2009-10-25T03:13:33+08:002009-10-25T03:13:33+08:00 DBA 或其他任何人都不应该检索密码。重置也许,检索没有。 密码应在数据库中和传输过程中进行散列或加密。
应用程序开发人员有责任跟踪他们访问数据库所需的凭据。原因是应用程序需要该密码才能完成工作,但无论如何数据库都会继续运行。
如果开发人员丢失了密码,DBA 的工作就是重置密码并提供新密码,但他们绝对不应该保留明文版本。想想系统管理员和用户。系统管理员不知道用户的密码,只负责重置和提供密码。
我的 .02 美元在这里。
DBA 应该跟踪应用程序密码。开发人员不应该拥有生产密码或 QA 密码。DBA 应该持有所有这些密钥,并根据需要将它们交给执行部署的系统管理员。
就我个人而言,我有一个小网络应用程序,我在几家公司之前构建了它,我发现它很方便。它允许您将用户名和密码放入数据库,数据库以安全的加密形式存储密码。记录对应用程序的所有访问以进行 SOX 审核。
通过应用程序授予对帐户的访问权限,因此作为 DBA,我可以创建一个帐户并授予开发人员对应用程序内帐户的读取访问权限,以便他们可以看到开发密码。QA 和生产密码的系统管理员也是如此。
在我看来,DBA 不需要知道或参与他们不需要知道的任何密码来执行他们的工作。您可以在忘记密码时帮助他们重置密码,提醒他们未更改/强制执行更改周期和其他类似的外围功能,但您不负责密码监控。如果您正在监视密码,它还可以让您了解/访问密码。
我建议每个应用程序都有一个应用程序管理员为他们的团队完成这项工作,所有这些都是“本地”管理的。只要监控帐户/密码组合的使用情况,以便没有人可以匿名访问数据,那么它应该可以正常工作。
与上面的一些帖子一样,DBA 真的不应该关心或担心用户/密码。不幸的是,有人需要在以后的某个时候检索这些信息。我们开发了一个小型应用程序,它将使用我们自己的算法根据用户名创建密码。我们的 DBA 拥有自己的客户端工具,如果有人要求输入密码,我们可以为他们找回密码。如果将来应用程序受到威胁,我们可以随时更改算法和/或重置密码。我们仅将其用于应用程序帐户。
我们无法给您一个明确的答案,因为不同的答案将适用于不同的组织。您确实应该在内部进行此讨论,以理清谁应对组织内的信息负责。如果你不能就这样微不足道的事情达成协议,你可能还有其他问题需要解决。在这种情况下,我们认为应该完全没有区别。
这是一个很好的问题,并且可能有与 Oracle DBA 一样多的答案。就我个人而言,我不喜欢维护这样的列表,并且会根据需要简单地设置一个新密码 - 并且可能在我完成后以加密形式设置回原始密码。
我认为他们可以。我在一家公司工作了大约 5 年,我们在那里明确定义了角色——应用程序开发人员创建应用程序并设计数据库,DBA 使用应用程序用来访问数据库的登录名测试数据库。他们确保该用户帐户所做的一切都正常运行,并检查了数据库的性能。他们做了比我们更多的测试。他们还确保所有其他用户都被锁定在数据库之外,因此在该用户下发生的任何事情都仅限于少数人。
所以我实际上认为允许 DBA 拥有这些用户名/密码很重要。就像系统管理员可以访问“测试”帐户来检查网络上的某些功能一样。
DBA 或其他任何人都不应该检索密码。重置也许,检索没有。
密码应在数据库中和传输过程中进行散列或加密。