其实看你的用户所要执行的操作,没有必要赋予DBA的权限

解决方案 »

  1.   

    太多后遗,用户只需用到基本权限,dba权限由DBA来操作,其它用户也有DBA权限,容易对整个数据库修改
      

  2.   

    如果赋予它DBA角色,是否就会对所有的用户数据库拥有读写和删除权限?
    是赋予DBA角色有哪些优缺点?
    安全性差。
      

  3.   

    不要对不需要DBA角色的用户授予dba权限,只要把用户所须的权限授给他就可以了
      

  4.   

    如果给用户赋予DBA权限安全性问题当然是存在的,我觉得还可能影响到数据库的性能,如果你由此用户建立很多连接,可能会大量占用数据库资源而影响数据库性能
      

  5.   

    多谢各位回复!
    再问一个问题,如果所建用户USER_M涉及对自身用户数据库(USER_M)的读写操作,还涉及对相关数据库(USER_OTH)的读写操作,最大限度应该赋于什么权限?
        我昨晚查了下,在默认的CONNECT的基础上,再在USER_OTH用户上将读写权限GRANT给USER_M,是否行的通?
      

  6.   

    用户对自己的数据拥有所有权利!
    Connect 角色允许用户从表中插入,更新,删除属于其它用户的记录(在取得了适当的许可权限以后)用户也可以创建表、视图、序列、簇和同义词。
    Resource 角色
    该角色允许用户对ORACLE 数据库进行更多的访问,除了可以赋予Connect 角色的权限以外,它还有创建过程(procedure),触发机制(trigger)和索引(index)的权限。
    DBA 角色
    DBA 角色包括了所有的权限,赋予了该角色的用户可以在数据库中做他们想做的任何事。为了保证系统的完整性你应该将具有该角色的用户数量保持在仅有的少数几个上。
    我觉得是可以在USER_OTH用户上将读写权限GRANT给USER_M的,但是不知道如何把读写的权限一次赋予user_m,如果是SELECT ANY TABLE,INSERT ANY TABLE,UPDATE ANY ROWS三种system_privilege是不是有些大!
    期待高人讲解!
      

  7.   

    如果可以的话,你可以写一个批处理文件
    类似于
    spool c:\role.sql
    select 'grant select,update,insert on '|| table_name||' to username;'
    from cat where table_type='TABLE';
    spool off;@c:\role.sql
      

  8.   

    写批处理倒是可行,那还是学要一个一个的grant,但是要是user_oth新建立了表,那么不是要重新执行批处理?
      

  9.   

    grant select,insert... to 用户.
    还有 create table...其实有一般的 查询,删除 权限就可以了。