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. 最佳实践

  1. 多 DB 共享:使用
  2. OS 用户映射:一致
  3. 权限最小化:原则
  4. 审计:变更
  5. 测试:验证
  6. 文档:配置
  7. 演练:故障
  8. 备份:权限
  9. 监控:访问
  10. 合规:审计

13. 参考资料

[1] Oracle Automatic Storage Management Administrator’s Guide 19c, “File Access Control” https://docs.oracle.com/en/database/oracle/oracle-database/19/ostmg/