首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只能作为sysdba登录到Oracle上

只能作为sysdba登录到Oracle上
EN

Stack Overflow用户
提问于 2012-10-26 22:46:09
回答 2查看 5K关注 0票数 1

我刚刚在Redhat 5上安装了11g2。我使用sqlplus登录,如下所示:

代码语言:javascript
复制
$sqlplus sys/abcabc as sysdba

我创建了一个用户如下:

代码语言:javascript
复制
sqlplus> create user "xyz" 
           profile "DEFAULT" 
           identified by "abcabc" 
           default tablespace "MYTAB" 
           temporary tablespace "TEMP" 
           account unlock;

sqlplus> grant dba to "xyz"

sqlplus> commit

sqlplus报告的用户创建并授予dba。没有任何错误被sqlplus重新定位。

现在,当我尝试按以下方式登录时:

代码语言:javascript
复制
$sqlplus xyz/abcabc

我再次得到一个登录提示,在3次重试之后,我被踢出。

但是,如果我按以下方式登录:

代码语言:javascript
复制
$sqlplus xyz/abcabc as sysdba

我被登录了。

有什么问题吗?我曾经多次遵循相同的过程来创建一个用户,而且它总是有效的。这次我需要以sysdba的身份登录,这有什么不同呢?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2012-10-26 23:23:15

您确定要创建区分大小写的用户名吗?这将是非常,非常不寻常。

当您使用surround an Oracle identifier with double-quotes时,您要求它作为区分大小写的标识符来处理.所以当你

代码语言:javascript
复制
create user "xyz"

你想要一个区分大小写的用户名。很多工具在传递区分大小写的标识符时都不会有问题,您必须担心在shell中正确地转义双引号。

最有可能的是,您真的不需要区分大小写的标识符。您只想使用一个标准的不区分大小写的标识符。

代码语言:javascript
复制
 create user xyz
     profile "DEFAULT" 
     identified by "abcabc" 
     default tablespace "MYTAB" 
     temporary tablespace "TEMP" 
     account unlock;

我更希望从表空间名称和配置文件名称中删除双引号,但这不会引起问题。

票数 2
EN

Stack Overflow用户

发布于 2012-10-27 06:40:27

但是,如果我按以下方式登录: $sqlplus xyz/abcabc作为sysdba 我被登录了。

您还可以像这样登录:

代码语言:javascript
复制
$sqlplus / as sysdba

这是因为/ as sysdba导致Oracle依赖于OS身份验证。如果您的OS用户是dba组的一部分(在Unix上),或者拥有管理员特权(在Windows上),那么您就在其中。

但是,无论您是否指定了用户,您都是在as SYS中。这很危险,因为SYS是数据字典的所有者,所以如果您不知道自己在做什么,那么就很容易对数据库进行处理。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13095427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档