我刚在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用户?
答案 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等。