即登录时判断用户名是否是A,如果是,则session级设置此参数为false,可以达到此目的。
无论方案1还是方案2,用户A再在tbs_2创建表,会有报错:
create table t2(id number) tablespace tbs_2
* ERROR at line 1: ORA-01950: no privileges on tablespace 'TBS_2'
总结:
1.UNLIMITED TABLESPACE权限是随着resource角色授予。
2.段延迟这个新特性,会造成未有权限的表空间中可以建表的“假象”,可以使用deferred_segment_creation参数关闭之。
3.Oracle实在是博大精深,任何一小细节可能都蕴含着很多知识和原理,同时他有提供了启用和关闭的方法,软件设计造诣,只能说是叹为观止了。
感谢晓飞、maclean还有牛大师几位的讨论和建议。