Browse Source

Allow use some additional config for old sqlserver (#16571)

Adding the encrypt and trustServerCertificate options to improve compatibility
with old sqlserver and obdc18.
Cristian Haunsen 3 years ago
parent
commit
d20dd0da43

+ 8 - 0
src/Database/Driver/Sqlserver.php

@@ -75,6 +75,8 @@ class Sqlserver extends Driver
         'failoverPartner' => null,
         'loginTimeout' => null,
         'multiSubnetFailover' => null,
+        'encrypt' => null,
+        'trustServerCertificate' => null,
     ];
 
     /**
@@ -151,6 +153,12 @@ class Sqlserver extends Driver
         if ($config['multiSubnetFailover'] !== null) {
             $dsn .= ";MultiSubnetFailover={$config['multiSubnetFailover']}";
         }
+        if ($config['encrypt'] !== null) {
+            $dsn .= ";Encrypt={$config['encrypt']}";
+        }
+        if ($config['trustServerCertificate'] !== null) {
+            $dsn .= ";TrustServerCertificate={$config['trustServerCertificate']}";
+        }
         $this->_connect($dsn, $config);
 
         $connection = $this->getConnection();

+ 2 - 0
tests/TestCase/Database/Driver/SqlserverTest.php

@@ -153,6 +153,8 @@ class SqlserverTest extends TestCase
         $expected['loginTimeout'] = null;
         $expected['multiSubnetFailover'] = null;
         $expected['port'] = null;
+        $expected['encrypt'] = null;
+        $expected['trustServerCertificate'] = null;
 
         $connection = $this->getMockBuilder('stdClass')
             ->addMethods(['exec', 'quote'])