Odoo 18 安全组与访问权限管理指南
一、准备工作:在自定义模块中创建安全配置文件
- 创建 security 文件夹
 在自定义模块内创建名为security的文件夹,用于存放安全组和访问权限的定义文件。
  
二、定义模型访问权限:ir.model.access.csv 文件
1. 创建访问权限文件
在 security 文件夹下创建 ir.model.access.csv 文件,定义模型的访问权限。 
文件格式:
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
2. 字段说明
| 字段 | 描述 | 
|---|---|
| id | 记录的唯一标识符(如 access_模型名) | 
| name | 访问规则的名称(如 access.class.record) | 
| model_id:id | 模型名称,格式为 model_<模型名>(如model_class_record) | 
| group_id:id | 关联的安全组(留空表示所有用户均可访问) | 
| perm_read | 读取权限(1=允许,0=拒绝) | 
| perm_write | 写入权限(1=允许,0=拒绝) | 
| perm_create | 创建权限(1=允许,0=拒绝) | 
| perm_unlink | 删除权限(1=允许,0=拒绝) | 
3. 示例:无安全组限制的访问规则
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_class_record,access.class.record,model_class_record,,1,1,1,1
- 说明: - group_id留空:所有用户(包括管理员和普通用户)均可访问- class.record模型。
- 权限字段均为 1:允许读取、写入、创建和删除操作。
 
4. 应用访问规则
- 在模块的 __manifest__.py文件的data列表中添加 CSV 文件路径:'data': ['security/ir.model.access.csv',# 其他数据文件 ],
- 升级模块或重启 Odoo 使配置生效。
5. 通过界面查看访问权限
- 路径:设置 > 技术 > 访问权限
  
- 操作:搜索模型名称(如 class.record),查看已定义的访问规则及其关联的安全组和权限。

三、创建安全组:通过 XML 定义
1. 定义安全组 XML
在 security 文件夹下创建 security_groups.xml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<odoo><data><!-- 创建安全组:学生管理员 --><record model="res.groups" id="student_group_manager"><field name="name">学生管理员</field><!-- 指定组分类为"管理" --><field name="category_id" ref="base.module_category_administration"/></record></data>
</odoo>
2. 更新模块清单文件
在 __manifest__.py 的 data 列表中添加 XML 文件路径:
{'data': ['security/security_groups.xml','security/ir.model.access.csv',],
}
3. 为用户分配安全组
-  添加用户到安全组: 
 进入设置 > 用户与公司 > 群组,搜索创建的安全组(如 “学生管理员”), 
 在组的表单视图的用户标签页下选择需要加入的用户。 
-  更新访问规则以限制权限: 
 修改ir.model.access.csv文件,将group_id:id设置为安全组的 ID(如student_group_manager):id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink access_class_record,access.class.record,model_class_record,student_group_manager,1,1,1,1效果:只有属于该安全组的用户才能访问 class.record模型。
4. 验证权限效果
-  管理员用户(属于该组):可查看和操作模型。  
-  普通用户(不属于该组):无法看到模型。 
  
四、总结
在 Odoo 18 中,通过安全组和访问权限管理可精准控制用户对数据和功能的访问,是保障系统安全和业务流程合规的核心机制。通过定义 ir.model.access.csv 规则、创建安全组并关联用户,企业可灵活适配组织架构和权限策略,确保数据安全的同时提升协作效率。