首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模块内的RBAC

模块内的RBAC
EN

Stack Overflow用户
提问于 2016-09-30 14:54:23
回答 2查看 387关注 0票数 10

我有一个现有的Yii2 basic系统,它运行于Oracle上,并通过Yii2Admin内置了RBAC。效果很好。

我现在需要另外使用另一个DB (MS 2008)。

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

我的问题是,对于我的第二个2008 DB的用户来说,在这个模块中是否可能有登录+ RBAC链接到2008 DB而不是现有的Oracle DB。

还是我要用甲骨文?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-06 08:43:40

是的,我认为您可以重写并为MSSQL创建一个单独的RBAC管理器

RBAC DB管理器中,您可以看到属性db

在您的配置文件中:

代码语言:javascript
复制
return [
      // ...
      'components' => [
        'authManager2' => [ // <!-- Auth Manager 2
            'class' => 'yii\rbac\DbManager',
            'db' => 'db2' // <-- Here is the magic change db instance
      ],
      // ...
],

然后可以使用建立您的授权对象进行Yii::$app->authManager2数据处理。

希望这能帮到你。

票数 0
EN

Stack Overflow用户

发布于 2016-10-03 14:22:42

试试折叠配置。首先将2008连接设置为db1名称示例:

代码语言:javascript
复制
'db1' => [
        'class' => '\yii\db\Connection',
        'dsn' => 'Your MS-SQL Server 2008  DNS',
        'username' => 'root',
        'password' => '',
        'charset' => 'utf8',
    ],

并在ActiveRecord模型中为db1值重写函数db1()。这将查询来自2008的数据。

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

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

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39794403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档