3个独立的问题:1>我用sys 登录后创建了一个测试用户u_tester1,然后赋予connect权限,发现该用户可以使用sysdba角色来登录。如果才能使创建的用户只能用normal角色登录。
2>创建了表空间ts_test1,在该表空间下创建了表t1,owner是u_tester1,发现不用给任何权限,u_tester1就可以完全拥有表t1的所有操作权限。能否控制u_tester1的权限。
3>创建了表空间ts_test1,在该表空间下创建了表t1.创建了一个role:r_test1,赋予r_test1 查询表T1的权限。
创建两个用户u_tester1,u_tester2,这两个用户都属于r_test1,如何让u_tester2不能对表T1进行查询。不能把t_test1从u_tester2中移除。谢谢!

解决方案 »

  1.   


    看的有点晕, 先说下第一个问题。 不知道楼主用u_tester1 怎么连接的, 如果是以下方式:
    conn user/pwd as sysdba; 只要OS 认证没有被禁用,不管user 是否存在,pwd 是否正确,它都会以sys 用户进行登陆,如果用normal 登陆,不加 as sysdba 即可..
    conn user/pwd;
    Oracle OS认证 口令文件 密码丢失处理
    http://blog.csdn.net/tianlesoftware/archive/2009/10/20/4698293.aspx------------------------------------------------------------------------------
    Blog: http://blog.csdn.net/tianlesoftware
    网上资源: http://tianlesoftware.download.csdn.net
    相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
    Q Q 群:62697716 
      

  2.   

    我使用的客户端工具pl/sql.
    在登录的时候会让选择connect  As .当u_tester1选择sysdba时,能否不让登录成功?
      

  3.   

    用u_tester1 也能用sysdba 登陆?楼主赋的权限大了点吧?看看用户是什么权限先。
    select * from dba_sys_privs where ;------------------------------------------------------------------------------
    Blog: http://blog.csdn.net/tianlesoftware
    网上资源: http://tianlesoftware.download.csdn.net
    相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
    Q Q 群:62697716 
      

  4.   

    我只是给了connect权限。
    用了select * from dba_sys_privs ,没有相关的权限。
      

  5.   

    2 u_tester1 这个用户是怎么登录的   是不是用的 as sysdba
    3 revoke r_test1 from user
      

  6.   

    对于第二个问题,有可能是在第一个用户名的基础之上创建的,其权限时sysdba,所以对于表的控制权限就很大了
      

  7.   

    对于第二个问题,有可能是在第一个用户名的基础之上创建的,其权限时sysdba,所以对于表的控制权限就很大了:我是用sys创建的。
      

  8.   

    多谢tianlesoftware,第一个问题解决了,
    请兄弟们帮帮忙搞定后续两个问题。
      

  9.   

    2
    用户u_tester1创建了t1表,那么默认他是有对t1表的操作权限的。如果你想取消表的拥有者对表的操作权限,完全可以在另外一个用户下创建表就行了。3
    revoke select on t1 from u_tester2;
      

  10.   

    在$ORACLE_HOME/NETWORK/ADMIN/sqlnet.ora文件中,是ORACLE的网络配置文件,SQLNET.AUTHENTICATION_SERVICES参数可以通常设置为:  ■ NONE 采用密码文件认证方式,需要输入用户名称和密码。  ■ NTS 采用WINDOWS的安全认证方式(WINDOWS专用);  ■ ALL 可以采用密码和操作系统认证方式。
    SQLNET.AUTHENTICATION_SERVICES设为NONE,就可以了
      

  11.   


    我用cmd登陆时用sqlplus 、 as sysdba 也可以登录,并且用show user查看时,用户是sys,这是不是也是os认证没被禁用啊?
    怎样禁用os啊?我也是个新手。