Oracle ASM File Access Control 详解
Oracle ASM File Access Control 详解
适用版本:Oracle Database 11g / 12c / 19c / 23ai 文档版本:v1.0 / 2026-07
1. 概述
ASM File Access Control 限制文件访问[1]:
详细见:Oracle ASM 架构与 AU 详解、Oracle ASM File Template 详解。
2. 优势
2.1 安全
- 文件级权限
- 用户隔离
- 多数据库共享 ASM
2.2 管理
- OS 用户映射
- 文件所有者
- 权限
3. 配置
3.1 OS 用户
# DB 用户
useradd -g oinstall -G dba oracle_prod
useradd -g oinstall -G dba oracle_test
3.2 ASM 用户组
# ASM Admin
groupadd asmadmin
# ASM DBA
groupadd asmdba
# ASM Oper
groupadd asmoper
3.3 用户映射
-- 在 ASM 实例
CREATE USER oracle_prod IDENTIFIED BY ******
ALTER USER oracle_prod ADD USERGROUP 'prod_grp';
ALTER USERGROUP 'prod_grp' ADD MEMBER 'oracle_prod';
4. 文件权限
4.1 所有者
ALTER DISKGROUP data SET OWNERSHIP
FOR FILE '+data/prod/datafile/users.123.456'
OWNER 'oracle_prod';
4.2 权限
ALTER DISKGROUP data SET PERMISSION
FOR FILE '+data/prod/datafile/users.123.456'
PERMISSION 'rwxrwx---';
4.3 递归
ALTER DISKGROUP data SET OWNERSHIP
FOR DIRECTORY '+data/prod'
OWNER 'oracle_prod' RECURSIVE;
5. 查看
5.1 视图
SELECT * FROM v$asm_user;
SELECT * FROM v$asm_usergroup;
SELECT * FROM v$asm_usergroup_member;
5.2 文件
SELECT group_number, file_number, name,
owner, usergroup, permissions
FROM v$asm_file;
6. 应用场景
6.1 多数据库共享
- 多 DB 共享 ASM
- 文件隔离
- 安全
6.2 测试/生产
- 测试 DB 不能访问生产文件
- 隔离
6.3 合规
- 访问控制
- 审计
7. ASMCMD
7.1 命令
asmcmd lsusr
asmcmd lsgrp
asmcmd mkgrp
asmcmd rmgrp
asmcmd grpmod
asmcmd chown
asmcmd chmod
7.2 示例
# 查看用户
ASMCMD> lsusr
# 修改所有者
ASMCMD> chown oracle_prod:prod_grp +data/prod/datafile/users.123.456
# 修改权限
ASMCMD> chmod 770 +data/prod/datafile/users.123.456
8. 默认权限
8.1 创建
- 所有者:创建者
- 权限:默认 rw-r--r--
8.2 修改
- 手动修改
- 递归
9. 与 OS
9.1 映射
- OS 用户名 = ASM 用户名
- 一致
- 信任
9.2 组
- asmdba:DB 访问 ASM
- asmadmin:管理
- asmoper:操作
10. 限制
10.1 兼容性
- 11g+
- Disk Group 兼容性
- ASM 版本
10.2 管理
- ASM 实例管理
- SYSDBA
11. 常见问题
11.1 权限拒绝
- ORA-15032
- 检查权限
- 所有者
11.2 用户映射
- OS 用户
- ASM 用户
- 一致
11.3 继承
- 新文件权限
- 默认
- 修改
12. 最佳实践
- 多 DB 共享:使用
- OS 用户映射:一致
- 权限最小化:原则
- 审计:变更
- 测试:验证
- 文档:配置
- 演练:故障
- 备份:权限
- 监控:访问
- 合规:审计
13. 参考资料
[1] Oracle Automatic Storage Management Administrator’s Guide 19c, “File Access Control” https://docs.oracle.com/en/database/oracle/oracle-database/19/ostmg/