模块中的RBAC

时间:2016-09-30 14:54:23

标签: module yii2 rbac

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

我现在需要另外使用另一个数据库(MS-SQL Server 2008)。

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

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

或者我必须使用Oracle吗?

2 个答案:

答案 0 :(得分:0)

是的,我认为你可以覆盖并为你的MSSQL服务器创建一个单独的RBAC管理器

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

配置文件中的

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

然后您可以使用Yii::$app->authManager2对象

build your authorization数据

希望这会对你有所帮助。

答案 1 :(得分:-1)

尝试使用folow配置。 Fist将MS-SQL Server 2008连接设置为db1名称 示例:

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

并在ActiveRecord模型中覆盖db1值的函数getDB()。这将从MS-SQL Server 2008查询数据。

文件:http://www.yiiframework.com/doc-2.0/yii-db-activerecord.html#getDb()-detail

注意:您必须通过扩展类或其他东西来定制Yii2Admin。