Database Yii:防止通过关系加载敏感数据

Database Yii:防止通过关系加载敏感数据,database,security,yii,relationship,Database,Security,Yii,Relationship,例如,我有一个名为Entity的模型和一个名为User的模型。每个实体都属于一个用户。建立关系的完美案例 用户仍然包含一些敏感数据,如密码。当向用户请求实体时,如何防止加载这些数据 另外,我知道最好设计数据库模式,将身份验证数据和公共可用数据分开。例如,在用户模型中存储密码,在配置文件模型中存储用户名。我的问题仍然是如何在这种情况下维护安全。我认为可以使用类似的方法: public function relations() { return array( 'us

例如,我有一个名为Entity的模型和一个名为User的模型。每个实体都属于一个用户。建立关系的完美案例

用户仍然包含一些敏感数据,如密码。当向用户请求实体时,如何防止加载这些数据


另外,我知道最好设计数据库模式,将身份验证数据和公共可用数据分开。例如,在用户模型中存储密码,在配置文件模型中存储用户名。我的问题仍然是如何在这种情况下维护安全。

我认为可以使用类似的方法:

public function relations()
{

    return array(
            'user' =>  array(self::BELONGS_TO,'User','id_field','select'=>'name,surname,otherfield1,field2'),
    );
}
更新

如果您想限制用户模型中的字段,可以尝试使用
defaultScope
结合使用来确定何时可以选择所有字段

public function defaultScope()
{
    if ( $this->scenario != 'yourScenario' ) {
      return array(
          'select'=>"name,surname,otherfield1,field2",
      );
    } else {
      return array();
    }      
}

可能有效,但这意味着具有此关系的每个模型都要负责安全问题。在用户模型中是否有这样做的方法。例如,限制加载密码字段,除非其他型号明确要求?