Connect SQLSRV

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
NEIRON
Сообщения: 102
Зарегистрирован: 2013.10.23, 07:18

Connect SQLSRV

Сообщение NEIRON »

Если писать вот так, то работает

Код: Выделить всё

$serverName = "x.x.x.x";
$connectionInfo = array("Database" => "database", "UID" => "user", "PWD" => "password","TrustServerCertificate"=>"yes");
$conn = sqlsrv_connect($serverName, $connectionInfo);
А как написать в Yii2 TrustServerCertificate, никуда не получается передать этот параметр
Если вот так

Код: Выделить всё

'db'=>[
        'class' => 'yii\db\Connection',
        'dsn'=>"sqlsrv:server=х.х.х.х;database=database",
        'username' => 'username',
        'password' => 'password',
        'charset' => 'utf8',
    ],
То получают сообщени об ошибке

Код: Выделить всё

Database Exception – yii\db\Exception
SQLSTATE[08001]: [Microsoft][ODBC Driver 18 for SQL Server]SSL Provider: [error:0A000086:SSL routines::certificate verify failed:self-signed certificate]
Error Info: Array
(
    [0] => 08001
    [1] => -1
    [2] => [Microsoft][ODBC Driver 18 for SQL Server]SSL Provider: [error:0A000086:SSL routines::certificate verify failed:self-signed certificate]
    [3] => 08001
    [4] => -1
    [5] => [Microsoft][ODBC Driver 18 for SQL Server]Client unable to establish connection
)
↵
Caused by: PDOException
SQLSTATE[08001]: [Microsoft][ODBC Driver 18 for SQL Server]SSL Provider: [error:0A000086:SSL routines::certificate verify failed:self-signed certificate]
in /var/www/bis/vendor/yiisoft/yii2/db/Connection.php at line 722
Аватара пользователя
SiZE
Сообщения: 2813
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Connect SQLSRV

Сообщение SiZE »

Попробуйте так 'dsn'=>"sqlsrv:server=х.х.х.х;database=database;TrustServerCertificate=true",

https://www.php.net/manual/en/ref.pdo-s ... ection.php
Аватара пользователя
NEIRON
Сообщения: 102
Зарегистрирован: 2013.10.23, 07:18

Re: Connect SQLSRV

Сообщение NEIRON »

SiZE писал(а): 2023.02.08, 14:11 Попробуйте так 'dsn'=>"sqlsrv:server=х.х.х.х;database=database;TrustServerCertificate=true",
https://www.php.net/manual/en/ref.pdo-s ... ection.php
Спасибо, ваш вариант тоже работает
И вот так еще получилось тоже

Код: Выделить всё

'dsn' => "sqlsrv:server=xx.xx.xx.xx;database=db;encrypt=false;"
Аватара пользователя
SiZE
Сообщения: 2813
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Connect SQLSRV

Сообщение SiZE »

NEIRON писал(а): 2023.02.09, 16:34 И вот так еще получилось тоже

Код: Выделить всё

'dsn' => "sqlsrv:server=xx.xx.xx.xx;database=db;encrypt=false;"
Это разные флаги. Ваш отключает работу с сертификатом, а TrustServerCertificate позволяет работать с самоподписанными сертификатами, что безопаснее в какой-то мере.
Ответить