【问题标题】:cakephp : separate database access for admin userscakephp : 管理员用户单独的数据库访问
【发布时间】:2010-12-12 14:10:37
【问题描述】:

我一直在使用 cakephp 来创建 Web 应用程序。在我当前的项目中,有两个数据库用户,一个用于管理员,另一个用于站点用户,我该如何配置 cakephp 以便管理员可以登录到具有更多数据库操作能力的站点?

谢谢

【问题讨论】:

    标签: php cakephp


    【解决方案1】:

    我同意。有时,在应用程序层处理权限比在数据库层处理权限更好。但是,如果您真的,真的希望在您的数据库中也有额外的安全层,那么您应该设置多个数据库连接:

    var $default = array(
        'driver' => 'mysql',
        'persistent' => false,
        'host' => 'localhost',
        'login' => 'normaluser',
        'password' => '',
        'database' => 'db',
        'prefix' => '',
    );
    
    var $admin = array(
        'driver' => 'mysql',
        'persistent' => false,
        'host' => 'localhost',
        'login' => 'adminuser',
        'password' => '',
        'database' => 'db',
        'prefix' => '',
    );
    

    如果用户在管理部分,或者您可能施加的任何条件,您可以使用$this->ModelName->setDataSource('admin')

    我建议您查看admin_ 前缀路由。 CakePHP 让您可以很轻松地处理管理员权限。 Prefix Routing 此外,您可以在用户表中添加一个字段来指示用户的角色,并根据当前前缀进行检查。

    【讨论】:

      【解决方案2】:

      最强大的解决方案可能是设置访问控制列表 (ACL)。这将允许您根据您指定的用户角色委派权限。

      例如 admin 的 group_id 为 1,user 的 group_id 为 2。然后您可以允许管理员访问您的 Web 应用程序中的某些操作。

      这是有关此功能的蛋糕文档。 http://book.cakephp.org/view/1242/Access-Control-Lists

      【讨论】:

        猜你喜欢
        • 2023-04-05
        • 2016-03-16
        • 2016-04-26
        • 2020-07-09
        • 1970-01-01
        • 2021-01-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多