3

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

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

create user testuser identified by testuser;

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

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

有什么我遗漏的,因为我认为用户 testuser 甚至不能登录,更不用说登录到 SYS 模式了。我还发现我可以使用任何用户名作为 sysdba 连接,无论它是否存在于数据库中。

如何创建无权访问任何其他模式的常规 oracle 用户?

4

2 回答 2

3

您的 windows 用户是 dba 组 ( oradba ) 的一部分。它使用 Windows 身份验证进行连接as sysdba。请参阅AskTom 上的此线程

“as sysdba”非常强大,它使用OS AUTHENTICATION,它不需要数据库认证(它用于在没有“数据库”甚至“实例”之前登录!)

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

于 2011-07-18T10:42:14.923 回答
0

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

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

将连接、资源授予 &1; 将更改会话授予 &1;

** 获取图片;还包括其他默认权限,例如“create ...”:序列、同义词、表、视图、数据库链接 select_catalog_role 等。

于 2011-07-18T13:29:32.913 回答