我正在尝试为我的公司开发一个解决方案,我的目标是将我们的 Web 服务器(在 php 上并且已经有一个网站已经在上面运行)连接到我们的 CRM 数据库(在 mssql 上并基于另一台服务器)。由于安全问题,我的第一个解决方案是在 Web 服务器中拥有此 CRM 数据库的副本,并每天或每小时对其进行同步。但是现在我正在考虑建立直接连接,你认为这是否可能,如果可能的话,我可能会遇到什么安全问题。有没有人有这种问题的经验?
谢谢
Ĵ
我正在尝试为我的公司开发一个解决方案,我的目标是将我们的 Web 服务器(在 php 上并且已经有一个网站已经在上面运行)连接到我们的 CRM 数据库(在 mssql 上并基于另一台服务器)。由于安全问题,我的第一个解决方案是在 Web 服务器中拥有此 CRM 数据库的副本,并每天或每小时对其进行同步。但是现在我正在考虑建立直接连接,你认为这是否可能,如果可能的话,我可能会遇到什么安全问题。有没有人有这种问题的经验?
谢谢
Ĵ
不鼓励每天进行同步,因为您将失去实时数据的可靠性。
如果您使用的是 PHP 5.1 版本,它仍然支持通过 php_mssql.dll 连接 php-mssql,只要确保在您的 PHP.ini 上启用它即可
<?php
$serverName = "ServerName"; /// use remote server name here
$uid = "sqlusername";
$pwd = "sqlpassword";
$databaseName = "DBName";
$connectionInfo = array( "UID"=>$uid,
"PWD"=>$pwd,
"Database"=>$databaseName);
/* Connect using SQL Server Authentication. */
$conn = sqlsrv_connect( $serverName, $connectionInfo);
$tsql = "SELECT id, FirstName, LastName, Email FROM tblContact";
/* Execute the query. */
$stmt = sqlsrv_query( $conn, $tsql);
if ( $stmt )
{
echo "Statement executed.<br>\n";
}
else
{
echo "Error in statement execution.\n";
die( print_r( sqlsrv_errors(), true));
}
/* Iterate through the result set printing a row of data upon each iteration.*/
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC))
{
echo "Col1: ".$row[0]."\n";
echo "Col2: ".$row[1]."\n";
echo "Col3: ".$row[2]."<br>\n";
echo "-----------------<br>\n";
}
/* Free statement and connection resources. */
sqlsrv_free_stmt( $stmt);
sqlsrv_close( $conn);
?>
连接到远程数据库会很慢,但至少你的数据会是一致的。如果速度不是一切,我建议使用这种方法。迁移数据可能很痛苦。
您可能希望在服务器之间创建安全 (SSL) 连接。有关详细信息,请咨询您的系统管理员。