oracle的开发和管理往往都是分开的當然不否认这种"集万千宠爱于一身"的人才也大有人在,但是在公司往往开发人员兼顾程序和数据库的设计与开发,而oracle dba则是负责oracle的安全与維护那么这就出现了一个问题,权限问题不是所有人都可以有dba权限的,这样很容易造成不安全的隐患所以要合理的分配用户和权限。 以下举例说明:
一、创建了一个查询用户rptuser该用户具有scott(根据公司具体要求替换用户)用户下所有表的查询权限。
注意:如果只是把scott用戶下emp表的select权限赋权给rptuser那么很简单,直接在dba用户下执行grant select on scott.emp to rptuser;即可那是因为仅此一条语句,所以可以直接赋权若是要求将一个具有几千几万張表的用户(此时若不是scott用户只有9张表)下的所有表赋权给一个查询用户,那岂不是悲剧了
二、两种方式:此处我采用方法二列举过程
彡、直接复制此内容使用system用户执行即可,这里我使用的是oracle的客户端Toad for oracle执行结果如下:
四、再用具有dba权限的用户给rptuser用户赋予建同义词的权限
五、再在scott用户下执行
六、最后将这个脚本内容用rptuser查询用户执行,完成
总结:这种办法的好处就是可以使dba简化繁琐的工作若是一张一张表的賦权,那么要是遇到一个用户几千张不,估计几十张你就得疯了,所以采用此方法
注意两点:1.此处应该用具有dba权限的用户执行此语呴
其他过程如上所述,此处省略十分钟的口水。。