Architecture 远程访问其他数据库管理系统
请回答两个问题 1) 我正在阅读有关联邦存储引擎的文章,但对我来说,不清楚简单的远程连接是否有优势。有什么区别或优势吗 2) (真正的问题)在这种情况下:如果我有一个MySQL数据库,我需要访问和读取其他数据库中的敏感数据,可能使用不同的DBMS,并且可能我只有读取权限(无论如何,我不需要更多的权限来执行任务) 选项Architecture 远程访问其他数据库管理系统,architecture,database,Architecture,Database,请回答两个问题 1) 我正在阅读有关联邦存储引擎的文章,但对我来说,不清楚简单的远程连接是否有优势。有什么区别或优势吗 2) (真正的问题)在这种情况下:如果我有一个MySQL数据库,我需要访问和读取其他数据库中的敏感数据,可能使用不同的DBMS,并且可能我只有读取权限(无论如何,我不需要更多的权限来执行任务) 选项 联邦存储引擎只能解决MySQL DBMS中的问题 数据库抽象库(pdo,zend) 为每个外部数据库构建一个API 将我的数据库与其他数据库同步(对于此提议,可能有些过分) 我
- 联邦存储引擎只能解决MySQL DBMS中的问题
- 数据库抽象库(pdo,zend)
- 为每个外部数据库构建一个API
- 将我的数据库与其他数据库同步(对于此提议,可能有些过分)
谢谢 很难判断您是在试图解决技术问题还是某种安全/管理问题。我将解决我认为是您的实际技术问题,确定用户是否在数据库中,并描述您的每个可能性的权衡。让我们按照复杂性的顺序讨论可能的解决方案 1.直接MySQL数据库连接 这将是使用特定于MySQL的数据库驱动程序直接连接到远程数据库,并发出硬编码的SQL语句。如果您可以确保两端都具有相同的模式知识,如果两端最好位于同一内部网络上,并且您负责所有要连接并需要此信息的客户端,那么这对于内部使用是很好的 2.PDO数据库连接 如果您同意模式,但不同意数据库供应商(即一方可能使用PostgreSQL而不是MySQL),那么PDO是更好的选择。只要查询相当简单,就不太可能遇到数据库兼容性问题。这是一个比#1更好的主意,因为它的工作量相同,但更灵活 3.数据库复制 我建议在决定使用数据库复制之前要格外小心。复制的设置很复杂,需要监督和管理。没有简单的复制设置。但是,如果:
- 可选存储引擎并不总是包含在操作系统提供的MySQL包中
- 没有被广泛使用的奇怪东西会毫无预警地中断
- 由于
仅在MySQL数据库之间工作,因此它引入了新的故障类型,而不会有意义地简化应用程序代码联邦
- 对API的访问可以与数据库分开管理
- 使用API不需要密码
- API将用户与内部数据库架构更改隔离开来
- API将代码和责任添加到您的代码库中
- 数据库的通用查询将需要大量代码
- API会让您面临自己的安全问题
如果不是这样,我想说,就效率和简单性而言,内部使用的最佳解决方案是使用PDO(#2)。否则,构建一个API(#5)。Daniel。谢谢就API而言。您所说的是我将数据访问权授予其他服务。好的,解释清楚了。但反过来说,如果我有一个数据库,我需要与n个远程数据库交换信息。每个服务都需要一个特定的API,对吗?如果这是你想要的方向,是的。我认为最好的选择(简单又便宜)可能是PDO。宝贵的帮助。谢谢