Oracle用户为啥都可以以sysdba身份登录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle用户为啥都可以以sysdba身份登录相关的知识,希望对你有一定的参考价值。

【sys】所有oracle的数据字典的基表和视图都存放在sys用户中,这些基表和视图对于oracle的运行是至关重要的,由数据库自己维护,任何用户都不能手动更改。sys用户拥有dba,sysdba,sysoper等角色或权限,是oracle权限最高的用户。
【system】用户用于存放次一级的内部数据,如oracle的一些特性或工具的管理信息。system用户拥有普通dba角色权限。
2)
其次的区别,权限的不同。
【system】用户只能用normal身份登陆em,除非你对它授予了sysdba的系统权限或者syspoer系统权限。
【sys】用户具有“SYSDBA”或者“SYSOPER”系统权限,登陆em也只能用这两个身份,不能用normal。
参考技术A 简单的说,oracle要认为你是sysdba有以下3个条件
1.
你对oracle的密码文件没有进行过设置;(因为oracle默认不认证以sysdba登录的用户)
2.
你是以操作系统管理员的身份登录的(不管谁登录你的电脑,只要是用管理员身份登录的,oracle都认作为sysdba,你可以试试用来宾账户登录操作系统,那样的话,oracle就不会把你认成dba了);
3.
你是以as
sysdba的方式登录的(只要你接了as
sysdba,不管你前面加了谁的用户名密码,oracle都认为你是以sysdba身份登录,用户为sys)
当上面3个条件有一个不满足的时候,你登录的用户就不是sys了,而如果你登录的那个用户没有被授权为dba的话,那他的权限肯定就只能是普通权限了。

DataGrip:如何以 SYSDBA 身份连接到 Oracle

【中文标题】DataGrip:如何以 SYSDBA 身份连接到 Oracle【英文标题】:DataGrip: how to connect to Oracle as SYSDBA 【发布时间】:2017-01-16 13:04:50 【问题描述】:

我尝试在DataGrip 中设置 SYS 用户下的 Oracle 连接。

但出现错误:

ORA-28009: 作为 SYS 的连接应该是 SYSDBA 或 SYSOPER

但是GUI中没有选项可以选择as SYSDBA选项。

【问题讨论】:

【参考方案1】:

两年后回到这里,似乎无法再更改连接设置中的高级属性。

您必须提供 sys as sysdba 作为用户名。 (这可能看起来很明显,但我花了一段时间才发现)

【讨论】:

您是如何设法更改高级属性的?我找不到internal_logon 键,也无法添加。 我猜,可用的属性名称列表来自附加时的驱动程序。【参考方案2】:

虽然目前没有简单的切换,但仍然可以转到连接属性中的高级选项卡并将internal_logon参数设置为sysdba值。

【讨论】:

是的,这就是答案 无法修改该选项卡中的值 (2018.2.3)。 sys as sysdba 解决方案对我有用。【参考方案3】:

sys as sysdba 作为用户名适用于 IntelliJ IDEA 中的数据库插件。

【讨论】:

【参考方案4】:

虽然这已经得到了回答。我想通过添加屏幕截图来更具描述性。

添加一个新数据库。确保用户名设置为sys as sysdba。默认密码通常是oracle

现在移至Advanced 选项卡。在这里找到internal_logon并将其参数设置为sysdba

就是这样。您已准备好连接。

【讨论】:

【参考方案5】:

sys 作为 sysdba

因为用户名在 Pycharm 中工作正常

【讨论】:

以上是关于Oracle用户为啥都可以以sysdba身份登录的主要内容,如果未能解决你的问题,请参考以下文章

获取以 sys 身份连接的用户的审核信息

oracle sqlplus '/as sysdba'

Oracle操作系统认证方式

Oracle数据库中system和sys有啥区别啊?

sqlplus /as sysdba 这条命令啥意思?

Oracle中sys和system用户的区别