2016-09-30 2 views
9

У меня есть существующая базовая система Yii2, которая работает с Oracle DB и имеет RBAC, встроенный через Yii2Admin. Он отлично работает.RBAC в модулях

У меня теперь есть необходимость использовать другую БД (MS-SQL Server 2008) дополнительно.

Итак, я создал новый модуль, который использует вторую ссылку Yii :: $ app-> db2 и все, что работает нормально.

Мой вопрос заключается в том, что для пользователей моей второй базы данных MS-SQL Server 2008 возможно иметь логины + RBAC в этом модуле, которые связаны с БД MS-SQL Server 2008, а не с существующей БД Oracle.

Или мне нужно использовать Oracle?

ответ

0

Да я думаю, что это возможно, Вы можете переопределить и создать отдельный RBAC менеджер для MSSQL Server

В RBAC DB Manager вы можете увидеть свойство db

в файле конфигурации:

return [ 
     // ... 
     'components' => [ 
     'authManager2' => [ // <!-- Auth Manager 2 
      'class' => 'yii\rbac\DbManager', 
      'db' => 'db2' // <-- Here is the magic change db instance 
     ], 
     // ... 
], 

А затем вы можете build your authorization данные, используя Yii::$app->authManager2 объект

Надеюсь, это поможет вам.

-1

Попробуйте конфигурацию. Кулак установить MS-SQL Server 2008 подключение как имя DB1 Пример:

'db1' => [ 
     'class' => '\yii\db\Connection', 
     'dsn' => 'Your MS-SQL Server 2008 DNS', 
     'username' => 'root', 
     'password' => '', 
     'charset' => 'utf8', 
    ], 

и переопределение функции getDB() в модели ActiveRecord для значения DB1. То, что будет запрашивать данные из MS-SQL Server 2008.

Документ: http://www.yiiframework.com/doc-2.0/yii-db-activerecord.html#getDb()-detail

Примечание: Вы должны обычай Yii2Admin по расширить класс или что-то для работы.

+0

У меня уже есть оба соединения с DB, которые работают нормально. «Примечание: вы должны настраивать Yii2Admin по расширению класса или что-то для работы.» На самом деле не является ответом на мой вопрос. – Jonnny

+0

Вы custome yii2admin module? Функция net custome getDb для всей модели модуля – dungphanxuan