Mysql 开发数据库凭据最佳实践?

Mysql 开发数据库凭据最佳实践?,mysql,database,development-environment,credentials,Mysql,Database,Development Environment,Credentials,处理内部开发数据库凭据的最佳实践是什么?对于应用程序和开发人员 目前,我们为每个开发数据库创建单独的用户/密码,并在代码存储库中提交这些凭据。但我们希望不再将凭证存储在存储库中。问题是我们的开发人员和应用程序都需要访问数据库 为开发人员提供自己的个人帐户,使他们能够访问所有开发人员数据库,这是一种良好的做法吗?甚至可能是所有的开发和生产数据库 开发人员应该在他们的开发环境中使用他们自己的个人帐户吗?或者他们应该使用另一个 如果他们应该使用不同的帐户,那么每个dev数据库是否应该有一组单独的凭据

处理内部开发数据库凭据的最佳实践是什么?对于应用程序和开发人员

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

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

如果重要的话,我们使用MySQL(确切地说是Percona)。

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

已经说过,开发人员应该在开发数据库上有一个读写帐户,在临时数据库上有一个只读帐户,在生产数据库上有一个只读帐户

为每个开发人员创建帐户,以便他们负责将其存储在安全的地方。因此,您无需担心如何以安全的方式存储/共享帐户

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

    # cat config.php
    <?php

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

    ?> 

您还应该告诉我们您正在使用哪些DBMS(Postgres、Oracle、DB2等等)。这类事情的最佳实践因DBMS系统而异。谢谢。我把它加到问题上了。谢谢。需要明确的是:在开发环境中,您的开发人员将使用自己的个人帐户进行所有本地应用程序的签出?
    %files www
    %config(noreplace) %attr(640, root, apache)  %{_sysconfdir}/%{project_name}/config.php