磁盘组属性access_control.enabled测试

ASM实例可以通过设置磁盘组的属性access_control.enabled来控制客户端对ASM file的访问。

下面带大家来看下,该属性配置后的效果,测试环境是oracle linux+12cR1 RAC

access_control.enabled属性默认为false,可以通过下面sql查看,这里以DATA磁盘组为例子:

col dg_name for a15
col attr_name for a30
col attr_vlue for a15
select a.name dg_name,b.name attr_name,value attr_vlue    
from v$asm_diskgroup a,v$asm_attribute b
where a.group_number=b.group_number
and a.name='DATA'
and b.name='access_control.enabled';

DG_NAME         ATTR_NAME                      ATTR_VLUE
--------------- ------------------------------ ---------------
DATA        access_control.enabled         FALSE

和access_control.enabled相依赖的属性是access_control.umask,该属性只有在access_control.enabled设置为true
时,设置才有效。该属性控制着asm文件的访问权限。该属性是3个数字的组合 {0|2|6} {0|2|6} {0|2|6},
默认是066,表示只有创建文件的用户有读写操作的权限,操作系统用户组和其他用户没有读写权限。

1、以sysasm权限登录asm实例,更改磁盘组属性,并查看新建asm文件的属性

SQL> ALTER DISKGROUP DATA SET ATTRIBUTE 'access_control.enabled' = 'true';
Diskgroup altered.

--属性已经更改

DG_NAME         ATTR_NAME                      ATTR_VLUE
--------------- ------------------------------ ---------------
DATA        access_control.enabled         true

--查看当前磁盘组中asm文件的权限
ASMCMD> ls --permission
User  Group  Permission  Name
 --省略部分内容
              rw-rw-rw-  control01.ctl => +DATA/CDB/CONTROLFILE/Current.261.906393975

--在该磁盘组下,创建新的asm文件,这里指的是数据文件
SQL> create tablespace test datafile '+DATA/cdb/test01.dbf' size 10m;
表空间已创建。

--再次查看当前磁盘组中asm文件的权限
ASMCMD> ls --permission
User    Group  Permission  Name
 --省略部分内容
                rw-rw-rw-  control01.ctl => +DATA/CDB/CONTROLFILE/Current.261.906393975
oracle          rw-------  test01.dbf => +DATA/CDB/DATAFILE/TEST.274.908465523

==》对比属性更改前后,用户显示出来了,权限控制是066.

2、关于用户组和文件权限控制

--查看asm user
SQL> SELECT group_number, os_name FROM V$ASM_USER;
GROUP_NUMBER OS_NAME
------------ ----------
           2 oracle
           2 grid
 
--添加asm user group
SQL> ALTER DISKGROUP DATA ADD USERGROUP 'test' WITH MEMBER 'oracle';
Diskgroup altered.

--针对asm文件设置group的信息
SQL>  ALTER DISKGROUP DATA SET OWNERSHIP OWNER='oracle', GROUP='test' FOR FILE '+DATA/CDB/test01.dbf';
Diskgroup altered.

ASMCMD> ls --permission
User    Group  Permission  Name
 --省略部分内容
                rw-rw-rw-  control01.ctl => +DATA/CDB/CONTROLFILE/Current.261.906393975
oracle   test   rw-------  test01.dbf => +DATA/CDB/DATAFILE/TEST.274.908465523

--针对asm 文件设置权限
SQL> ALTER DISKGROUP DATA SET PERMISSION OWNER=NONE, GROUP=NONE, OTHER=none FOR FILE '+DATA/CDB/test01.dbf';
Diskgroup altered.

ASMCMD>  ls --permission
--省略部分
                rw-rw-rw-  control01.ctl => +DATA/CDB/CONTROLFILE/Current.261.906393975
oracle   test   ---------  test01.dbf => +DATA/CDB/DATAFILE/TEST.274.9084655233

==》asm文件的权限被设置为666。


SQL> create table test (id number) tablespace test;
表已创建
SQL> insert into test values (1);
已创建 1 行。
SQL> commit;
提交完成。
SQL> select * from test;
        ID
----------
         1
 
==》虽然asm文件的权限被设置为666,但是客户端数据依然能够插入。和一开始设想,认为数据插入不进去有点出入。

--测试表空间脱机和联机 
SQL> alter tablespace test offline;
表空间已更改。
SQL> alter tablespace test online;
alter tablespace test online
*
第 1 行出现错误:
ORA-01157: 无法标识/锁定数据文件 25 - 请参阅 DBWR 跟踪文件 ORA-01110:
数据文件 25: '+DATA/cdb/test01.dbf'

==》这里报错了,猜测可能涉及到文件头数据更改时,针对当前用户的文件权限的控制才生效。


--将read write权限赋予oracle用户
SQL> ALTER DISKGROUP DATA SET PERMISSION OWNER=read write, GROUP=NONE, OTHER=NONE FOR FILE '+DATA/CDB/test01.dbf';
iskgroup altered.
SQL> alter tablespace test online;
表空间已更改。

--将access_control.umask属性设置为'666'
SQL> ALTER DISKGROUP DATA SET ATTRIBUTE 'access_control.umask' = '666';    
Diskgroup altered.

--创建表空间,直接报错
SQL> create tablespace test1 datafile '+DATA/cdb/test02.dbf' size 10m;
create tablespace test1 datafile '+DATA/cdb/test02.dbf' size 10m
*
第 1 行出现错误:
ORA-01157: 无法标识/锁定数据文件 27 - 请参阅 DBWR 跟踪文件 ORA-01110:
数据文件 27: '+DATA/cdb/test02.dbf'

总结:
1、access_control.enabled磁盘组属性控制asm文件的权限,存在多个oracle软件版本时,作用才能体现。即只存在一个oracle版本时,设置该参数,个人认为没有什么意义。
2、针对当前用户的文件权限的控制,这里以数据文件为例。即使权限被设置为666,数据依然能够插入和访问。

end !

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25923810/viewspace-2076446/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/25923810/viewspace-2076446/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值