模块内的 RBAC
RBAC within Modules
我有一个现有的 Yii2 基本系统,它运行 Oracle 数据库并通过 Yii2Admin 内置了 RBAC。效果很好。
我现在需要另外使用另一个数据库 (MS-SQL Server 2008)。
所以我设置了一个使用第二个 Yii::$app->db2 link 的新模块,一切正常。
我的问题是,对于我的第二个 MS-SQL Server 2008 DB 的用户,是否可以在这个 linked 到 MS-SQL Server 2008 数据库而不是现有的 Oracle 数据库。
或者我必须使用 Oracle?
尝试以下配置。
将 MS-SQL Server 2008 连接设置为 db1 名称
示例:
'db1' => [
'class' => '\yii\db\Connection',
'dsn' => 'Your MS-SQL Server 2008 DNS',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
],
并为 db1 值覆盖 ActiveRecord 模型中的函数 getDB()。这将从 MS-SQL Server 2008.
查询数据
文档:http://www.yiiframework.com/doc-2.0/yii-db-activerecord.html#getDb()-detail
注意:您必须通过扩展 class 或其他工作来自定义 Yii2Admin。
是的,我认为这是可能的您可以覆盖并为您的 MSSQL 服务器创建一个单独的 RBAC 管理器
在RBAC DB Manager you can see property 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 数据
希望对您有所帮助。
我有一个现有的 Yii2 基本系统,它运行 Oracle 数据库并通过 Yii2Admin 内置了 RBAC。效果很好。
我现在需要另外使用另一个数据库 (MS-SQL Server 2008)。
所以我设置了一个使用第二个 Yii::$app->db2 link 的新模块,一切正常。
我的问题是,对于我的第二个 MS-SQL Server 2008 DB 的用户,是否可以在这个 linked 到 MS-SQL Server 2008 数据库而不是现有的 Oracle 数据库。
或者我必须使用 Oracle?
尝试以下配置。 将 MS-SQL Server 2008 连接设置为 db1 名称 示例:
'db1' => [
'class' => '\yii\db\Connection',
'dsn' => 'Your MS-SQL Server 2008 DNS',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
],
并为 db1 值覆盖 ActiveRecord 模型中的函数 getDB()。这将从 MS-SQL Server 2008.
查询数据文档:http://www.yiiframework.com/doc-2.0/yii-db-activerecord.html#getDb()-detail
注意:您必须通过扩展 class 或其他工作来自定义 Yii2Admin。
是的,我认为这是可能的您可以覆盖并为您的 MSSQL 服务器创建一个单独的 RBAC 管理器
在RBAC DB Manager you can see property 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 数据
希望对您有所帮助。