处理内部开发数据库凭据的最佳做法是什么?应用程序和开发人员都可以吗?
目前,我们为每个开发数据库创建单独的用户/密码,并在代码库中提交这些凭据。但我们希望不再在我们的存储库中存储凭据。问题是我们的开发人员和应用程序都需要访问数据库。
如果重要,我们使用MySQL(确切地说是Percona)。
答案 0 :(得分:2)
首先确保开发,登台和生产环境100%独立。因此,MySQL帐户也应该是分开的。它有助于平滑地进行版本升级,并且更安全。在Percona,我做了十几个恢复案例,开发人员只是因为生产和开发数据库共享了他的帐户而放弃了生产数据库。
说过开发人员应该在开发数据库上有一个读写帐户,在登台数据库上有只读帐户,在生产时只有只读。
为每个开发人员创建帐户,因此他们负责将它们存储在安全的地方。因此,您无需担心如何以安全的方式存储/共享帐户。
显然,密码不应存储在存储库中。将配置模板保留在源代码树中:
# cat config.php
<?php
$mysql_user="@@MYSQL_USER@";
$mysql_password="@@MYSQL_PASSWORD@";
$mysql_host="@@MYSQL_HOST@";
$mysql_db="@@MYSQL_DB@";
?>
要确保在升级过程中没有覆盖它,请在.spec文件中说明
%files www
%config(noreplace) %attr(640, root, apache) %{_sysconfdir}/%{project_name}/config.php