oracle创建目录对象权限,【DIRECTORY】普通用户创建Oracle DIRECTORY数据库对象的权限需求及探索...

可能遇到的报错信息如若在创建DIRECTORY之前普通用户sec未获得相应权限,将会收到最为常见的“ORA-01031: insufficient privileges”错误。模拟再现一下,供大家参考。sec@ora10g> conn / as sysdbaConnected.sys@ora10g> revoke CREATE ANY DIRECTORY from sec;Revoke succeeded.sys@ora10g> conn sec/secConnected.sec@ora10g> create directory dir_test as '/home/oracle/secooler';create directory dir_test as '/home/oracle/secooler'*ERROR at line 1:ORA-01031: insufficient privileges4.获得DIRECTORY创建结果信息用于查询获得DIRECTORY信息的数据库视图“仅有”两个,如下所示。sys@ora10g> select TABLE_NAME from dict where table_name like '%DIRECTORIES';TABLE_NAME------------------------------ALL_DIRECTORIESDBA_DIRECTORIES这里之所以强调“仅有”,是与其他数据库对象视图相比较而言的。例如,用于获得同名的数据库视图一般都会有三类,如下所示。sys@ora10g> select TABLE_NAME from dict where table_name like '%SYNONYMS';TABLE_NAME------------------------------DBA_SYNONYMSUSER_SYNONYMSALL_SYNONYMS用于查看DIRECTORY数据库对象的视图之所以没有以USER开头的是有其具体缘由的。请继续跟随我进行探索。我们使用ALL_DIRECTORIES视图查看刚刚创建成功的DIRECTORY对象。sec@ora10g> col owner for a6sec@ora10g> col DIRECTORY_NAME for a15sec@ora10g> col DIRECTORY_PATH for a30sec@ora10g> select * from all_directories where DIRECTORY_NAME = 'DIR_TEST';OWNER  DIRECTORY_NAME  DIRECTORY_PATH------ --------------- ------------------------------SYS    DIR_TEST        /home/oracle/secooler重点关注一下OWNER字段的返回结果,这里显示的内容是“SYS”,并不是我们所期待的那个创建DIRECTORY的当前用户“SEC”!这样便可以顺理成章的给出不存在以USER开头的“USER_DIRECTORIES”视图的合理解释,因为DIRECTORY数据库对象并不属于某个具体用户,都归SYS用户所有!5.小结在对Oracle数据库世界的探索过程中,不要放过任何蛛丝马迹,每一个细节问题都充满了乐趣,值得思考和总结。在践行的征程中我们追求的是一种甚解的态度!Good luck.secooler11.03.27-- The End --

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值