我刚刚在Redhat 5上安装了11g2。我使用sqlplus登录,如下所示:
$sqlplus sys/abcabc as sysdba我创建了一个用户如下:
sqlplus> create user "xyz"
profile "DEFAULT"
identified by "abcabc"
default tablespace "MYTAB"
temporary tablespace "TEMP"
account unlock;
sqlplus> grant dba to "xyz"
sqlplus> commitsqlplus报告的用户创建并授予dba。没有任何错误被sqlplus重新定位。
现在,当我尝试按以下方式登录时:
$sqlplus xyz/abcabc我再次得到一个登录提示,在3次重试之后,我被踢出。
但是,如果我按以下方式登录:
$sqlplus xyz/abcabc as sysdba我被登录了。
有什么问题吗?我曾经多次遵循相同的过程来创建一个用户,而且它总是有效的。这次我需要以sysdba的身份登录,这有什么不同呢?
谢谢
发布于 2012-10-26 23:23:15
您确定要创建区分大小写的用户名吗?这将是非常,非常不寻常。
当您使用surround an Oracle identifier with double-quotes时,您要求它作为区分大小写的标识符来处理.所以当你
create user "xyz"你想要一个区分大小写的用户名。很多工具在传递区分大小写的标识符时都不会有问题,您必须担心在shell中正确地转义双引号。
最有可能的是,您真的不需要区分大小写的标识符。您只想使用一个标准的不区分大小写的标识符。
create user xyz
profile "DEFAULT"
identified by "abcabc"
default tablespace "MYTAB"
temporary tablespace "TEMP"
account unlock;我更希望从表空间名称和配置文件名称中删除双引号,但这不会引起问题。
发布于 2012-10-27 06:40:27
但是,如果我按以下方式登录: $sqlplus xyz/abcabc作为sysdba 我被登录了。
您还可以像这样登录:
$sqlplus / as sysdba这是因为/ as sysdba导致Oracle依赖于OS身份验证。如果您的OS用户是dba组的一部分(在Unix上),或者拥有管理员特权(在Windows上),那么您就在其中。
但是,无论您是否指定了用户,您都是在as SYS中。这很危险,因为SYS是数据字典的所有者,所以如果您不知道自己在做什么,那么就很容易对数据库进行处理。
https://stackoverflow.com/questions/13095427
复制相似问题