模块中的RBAC

Jon*_*nny 10 module rbac yii2

我有一个现有的Yii2基本系统,它运行在Oracle DB上,并通过Yii2Admin内置了RBAC.它很棒.

我现在需要另外使用另一个DB(MS-SQL Server 2008).

所以我设置了一个新的模块,它使用第二个Yii :: $ app-> db2链接,所有这些都正常工作.

我的问题是,对于我的第二个MS-SQL Server 2008数据库的用户,可以在此模块中使用登录+ RBAC链接到MS-SQL Server 2008数据库而不是现有的Oracle数据库.

或者我必须使用Oracle?

Tou*_*afi 0

是的,我认为这是可能的您可以为您的 MSSQL Server覆盖并创建一个单独的RBAC管理器

RBAC DB Manager中您可以看到属性db

在你的配置文件中:

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

然后您可以使用对象构建授权数据Yii::$app->authManager2

希望对你有帮助。