如何在微服务架构中管理MySQL连接

我了解如何连接到MySQL服务器,但是我的难题是使用密码。 这是我正在查看的一些内容。</ p>


  1. 架构将是1项核心服务,到目前为止,它将被设置为摘要身份验证服务。 注意:将来我还将为kerberos身份验证设置它。</ li>
  2. 该服务将具有一个在MySQL中需要访问的架构。 此外,微服务还将具有它们自己需要访问的架构。</ li>
  3. 数据库最初将是localhost,但最终(在生产中)将全部移至单独的服务器。 </ li>
    </ ol>

    鉴于上述要求,我无法向仅限本地主机且没有密码的用户提供服务(如果 服务器被黑客入侵)。 那么如何在不使用任何纯文本密码的情况下访问数据库(我不希望密码存储在代码中)?</ p>

    也许我只是在这里不理解可能会使 我的生活变得如此轻松,所以我再次期待这里许多人的智慧。 预先感谢!</ p>

    我应该提到一些事情:我打算将go-martini用作我的http路由器,我希望能够设置OAuth Provider,我将 需要管理用户会话和身份验证(目前不如我要获取服务设置的核心部分那么重要)</ p>

    编辑</ strong>: 一些信息; </ p>


    1. 我没有要使用的AD,kerberos或任何其他LDAP服务,并且此时很难在VM中对其进行设置 我用发展。 </ li>
    2. 该服务不应依赖于这些项目中的任何一项,因为SSO在该项目中是一个较晚的要求。</ li>
    3. 严格地说,它将被部署在具有以下条件的环境中 </ li>
    4. 我还专门在Go中开发服务,并在React中开发客户端。</ li>
      </ ol>

      注意:我不需要其他人来纠正 MY </ strong>问题。 如果您不更改问题的范围以适合您希望给我的答案,我将不胜感激。 那不是StackOverflow的目的,这样做也是很不礼貌的。 谢谢。</ p>
      </ div>

展开原文

原文

I have the gist of how to connect to a MySQL server, however my dilemma is using passwords. Here are some of the things I am looking at.

  1. Architecture will be 1 core service which as of right now will be set up as a digest authentication service. Note: In the future I will also have it set up for kerberos authentication.
  2. The service will have a schema it will need to be able to access in MySQL. Also the micro services will have their own schemas that they will also need to be able to access.
  3. The database will be localhost initially but will eventually be moved (in production) to a separate server altogether.

Given the requirements above, I cannot give the services users that are restricted to localhost and have no password associated with them (nor would I want that in the event the server was hacked). So how can I have access to the database without using any plain text passwords (I don't want it stored in the code)?

Maybe I am just not understanding something here that could make my life so much easier so again I look towards the wisdom of the many here. Thanks in advance!

Some things that I should maybe mention: I plan on using go-martini as my http router, I'd like to be able to set up OAuth Provider, I will need to manage user sessions and authentication (right now not as important as I'm trying to get the core part of the service setup)

Edit: To clarify some information;

  1. I do not have an AD, kerberos, or any other LDAP service to use and would be hard pressed to set them up at this time in a VM I use for development.
  2. The service should not be dependent on any of those items as SSO is a much later requirement in this project.
  3. Strictly speaking it will be deployed in environments where there are none of those available and this is non-negotiable.
  4. I also am specifically developing the services in Go and the clients in React.

Note: I do not need someone to correct MY question. I would appreciate it if you do not change the context of my question to suite the answer you wish to give me. That is not what StackOverflow is about, it is also quite rude to do that. Thank you.

dongquming3255
dongquming3255 一点也不不是它的重复。虽然他们有一个共同的想法..我不想存储任何密码。另外,我不知道谁编辑了我的主题,但这是专门针对GoLang和MySql的,不要与MSSQL或SQLServer混淆。最后,我正在尝试实现一些与数据库永久位于同一服务器上的永久性绑定,而这并不是我现在需要的实际解决方案,它不是为数据库提供服务,而是与袜子一起使用客户端到数据库。我的摘要表将处理客户端到数据库的会话。
一年多之前 回复
douhu5837
douhu5837 可能的重复方式是,什么是使密码可配置的最佳方法,而又不会使普通读者容易地使用它们?
一年多之前 回复
dsn46282
dsn46282 我通过PLUGIN_NAMEASC从INFORMATION_SCHEMA.PLUGINS命令中运行了SELECTPLUGIN_NAME,PLUGIN_STATUS的查询;
一年多之前 回复
doubi1713
doubi1713 从那时起,我将不得不考虑这一点。.我现在没有kerberos环境,可以使用...来完成此操作……那实际上我似乎完全缺少该插件?
一年多之前 回复
dqmq0654
dqmq0654 auth_socket不能远程工作。可能需要为此考虑一下kerberos。
一年多之前 回复
dsflxcfuw27742248
dsflxcfuw27742248 好的,所以我可以看到它如何工作。实际上我认为我在postgres中使用了类似的方法。那将解决该服务的连接...也许会起作用,因为该服务是这里的代理,我要求它与数据库位于同一服务器上,但是微服务可以远程连接到该代理?那会工作吗?
一年多之前 回复
draxu26480
draxu26480 对于原始的localhost解决方案,我建议为您的Web服务器用户使用auth_socket身份验证。基于与mysql用户匹配的unix用户的无密码身份验证。我建议您从风险评估开始,以确保成本/收益在那里。还要检查您的MySQL实现支持身份验证插件的方式/方式。auth_socket不需要客户端身份验证插件支持。
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问