首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >开发数据库凭据最佳做法?

开发数据库凭据最佳做法?
EN

Stack Overflow用户
提问于 2014-02-12 07:48:25
回答 1查看 990关注 0票数 5

处理内部开发数据库凭据的最佳做法是什么?对应用程序和开发人员都是吗?

目前,我们为每个开发数据库创建一个单独的用户/密码,并在代码存储库中提交这些凭据。但是,我们希望避免在存储库中存储凭据。问题是我们的开发人员和应用程序都需要访问数据库。

  • 让开发人员自己的个人帐户使他们能够访问所有的dev数据库,这是一个很好的做法吗?甚至所有的开发和生产数据库?
  • 开发人员应该在自己的开发环境中使用自己的个人帐户吗?或者他们应该使用不同的?
  • 如果他们应该使用不同的帐户,那么每个dev数据库应该有一组单独的凭据吗?还是应该创建一个帐户来访问开发人员在其所有应用程序中可以使用的所有dev数据库?
  • 如果我们应该为每个dev数据库使用单独的帐户,那么当开发人员为自己设置一个新的dev环境时,他们应该如何获得这些凭证呢?我们已经发现,尝试手动跟踪这些(例如wiki)非常容易出错,并且很快就过时了。

如果有关系,我们使用MySQL (确切地说,是Percona)。

EN

回答 1

Stack Overflow用户

发布于 2014-02-13 16:39:00

首先,确保开发、分期和生产环境是100%独立的。因此,MySQL帐户也应该是分开的。它有助于使版本升级顺利,而且更安全。在Percona,我做了十几个恢复案例,其中一个开发人员仅仅因为生产和开发数据库共享他的帐户就放弃了一个生产数据库。

话虽如此,开发人员在开发数据库上应该有一个读写帐户,在暂存数据库上应该有一个只读帐户,在生产上应该有只读帐户。

为每个开发人员创建帐户,因此他们负责将它们存储在安全的位置。因此,您不需要费心如何以安全的方式存储/共享帐户。

显然,密码不应该存储在存储库中。将配置模板保存在源代码树中:

代码语言:javascript
复制
    # cat config.php
    <?php

    $mysql_user="@@MYSQL_USER@";
    $mysql_password="@@MYSQL_PASSWORD@";
    $mysql_host="@@MYSQL_HOST@";
    $mysql_db="@@MYSQL_DB@";

    ?> 

要确保它在升级过程中没有被覆盖,请在.spec文件中告知

代码语言:javascript
复制
    %files www
    %config(noreplace) %attr(640, root, apache)  %{_sysconfdir}/%{project_name}/config.php
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21721705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档