热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

Oracle为什么没有权限的用户也可以用sysdba登录-mysql教程

我随便创建了一个用户,createuserlisiidentifiedbylisi;当我用sqlplus登录的时候:cmd-gt;sqlpluslisilisi进不去

我随便创建了一个用户,create user lisi identified by lisi; 当我用sqlplus登录的时候:cmd -gt; sqlplus lisi/lisi 进不去

我随便创建了一个用户,create user lisi identified by lisi; 当我用sqlplus登录的时候:

cmd -> sqlplus lisi/lisi 进不去 ->然后 lisi lisi as sysdba 就进去了,所以才有了疑问。

然后我进入管理员,将lisi用户删掉了

cmd -> sqlplus lisi/lisi 进不去 ->然后 lisi lisi as sysdba 就进去了,疑问就更深了。

分别三个人解答:

解答一:

对于windows操作系统,在Oracle数据库安装后,,会自动在操作系统中安装一个名为ORA_DBA的用户组,只要是该组中的用户,即可以

SYSDBA的身份登录数据库而不会验证SYS的口令。也可以创建名为ORA_SID_DBA(SID为实例名)的用户组,属于该用户组的用户也可以

具备以上特权。这个是你为啥能show的时候还是系统用户,

解答二:

简单的说,oracle要认为你是sysdba有以下3个条件

1.你对oracle的密码文件没有进行过设置;(因为oracle默认不认证以sysdba登录的用户)

2.你是以操作系统管理员的身份登录的(不管谁登录你的电脑,只要是用管理员身份登录的,oracle都认作为sysdba,你可以试试用来宾账户登录操作系统,那样的话,oracle就不会把你认成DBA了);

3.你是以as sysdba的方式登录的(只要你接了as sysdba,不管你前面加了谁的用户名密码,oracle都认为你是以sysdba身份登录,用户为sys)

当上面3个条件有一个不满足的时候,你登录的用户就不是sys了,而如果你登录的那个用户没有被授权为dba的话,那他的权限肯定就只能是普通权限了。

解答三:

写法上都是可以的,但是加上as sysdba那么你登陆的就是sysdba,和你前面的用户没关系了,你如果新建一个用户user1,如create user user1 identfied by 123,然后用sys账户grant给他登陆权限之后,就可以直接conn user1/123,这样连的就是user1,如果你conn user1/123 as sysdba,那你连接的还是sysdba,和前面的user1一点关系都没有了。

本文永久更新链接地址

推荐阅读
author-avatar
经任萍
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有