为什么我的新用户可以在oracle中以sysdba身份登录?

时间:2011-07-18 08:08:01

标签: oracle schema sys sysdba

我刚在Windows 7机器上安装了Oracle 11g R2。我可以使用sys作为sysdba帐户登录。

使用sys帐户我创建了一个用户,如下所示

create user testuser identified by testuser;

当我尝试使用testuser作为普通用户连接到数据库时,它说'用户testuser缺少CREATE SESSION权限;登录被拒绝'这是可以理解的,因为到目前为止我还没有向testuser授予任何权限。

但是当我尝试使用testuser作为sysdba登录数据库时,它允许我连接到数据库,所选模式在我看来就像SYS模式。

我是否缺少某些内容,因为我认为用户testuser甚至无法登录,更不用说登录SYS架构了。我还发现我可以用任何用户名连接sysdba,无论它是否存在于数据库中。

如何创建一个无法访问任何其他架构的常规oracle用户?

2 个答案:

答案 0 :(得分:3)

您的Windows用户是dba组的一部分( oradba )。它使用Windows身份验证来连接as sysdba。见this thread on AskTom

  

“as sysdba”非常强大,它使用OS AUTHENTICATION,它确实如此   不需要数据库身份验证(它用于在那之前登录   是一个“数据库”甚至是“实例”!)

作为dba组的成员,您可以向任何数据库用户登录as sysdba。您甚至可以在没有用户的情况下登录:sqlplus / as sysdba

答案 1 :(得分:0)

这就是我通常会创建新用户的方式:

创建用户& 1   由& 2标识   默认表空间& 3   临时表空间& 4;

将连接,资源授予& 1; 将alter session授予& 1;

**得到照片;还包括其他默认权限,如“create ...”:sequence,synonym,table,view,database link select_catalog_role等。