developer连接时候始终报ora

您所在的位置:网站首页 oracle关闭连接的用户 developer连接时候始终报ora

developer连接时候始终报ora

2023-07-05 22:16| 来源: 网络整理| 查看: 265

在2003上装好oracle10g后,监听已经配通。

但是pl/sql developer连接时候始终报ora-01031权限不足。

使用sys用户可以连接上。

于是初步认为system用户被限定不能远程登录。

而后,发现一个帖子是如下解释这个问题的:

(1)你说在本机SYSTEM用户可以已SYSDBA登录,那么如此运行后,你使用“show user”看看当前用户是否是SYSTEM——我估计不是。 (2)是否创建了口令文件,如果创建了查看一下V$PWFILE_USERS,看看其中有没有SYSTEM 用户,如果没有将其加入(grant sysdba to system),SYSTEM就可以从远程以SYSDBA连接了。

于是,查看了一下:

SQL> select * from V$PWFILE_USERS; USERNAME                       SYSDBA SYSOPER ------------------------------ ------ ------- SYS                            TRUE   TRUE PENG                           TRUE   FALSE   SQL> grant sysdba to system;  Grant succeeded SQL>

 

SQL> select * from V$PWFILE_USERS;   USERNAME                       SYSDBA SYSOPER ------------------------------ ------ ------- SYS                            TRUE   TRUE PENG                           TRUE   FALSE SYSTEM                         TRUE   FALSE  

这时再用system登录就可以了。

 

下边是关于sys和system用户的权限的文章来自CSDN博客,地址为:http://blog.csdn.net/ecjtuxuan/archive/2010/07/26/5766244.aspx

sys 和 system 用户区别   1 )   最重要的区别,存储的数据的重要性不同 【 sys 】   所有 oracle 的数据字典的基表和视图都存放在 sys 用户中,这些基表和视图对于 oracle 的运行是至关重要的,由数据库自己维护,任何用户都不能手动更改。 sys 用户拥有 dba , sysdba , sysoper 等角色或权限,是 oracle 权限最高的用户。   【 system 】   用户用于存放次一级的内部数据,如 oracle 的一些特性或工具的管理信息。 system 用户拥有普通 dba 角色权限。    2)   其次的区别,权限的不同。 【 system 】用户只能用 normal 身份登陆 em ,除非你对它授予了 sysdba 的系统权限或者 syspoer 系统权限。 【 sys 】用户具有 “SYSDBA” 或者 “SYSOPER” 系统权限,登陆 em 也只能用这两个身份,不能用 normal 。 以 sys 用户登陆 Oracle ,执行 select * from V_$PWFILE_USERS; 可查询到具有 sysdba 权限的用户,如: SQL> select * from V_$PWFILE_USERS;    USERNAME SYSDBA SYSOPER    SYS TRUE TRUE Ø          Sysdba 和 sysoper 两个系统权限区别   normal 、 sysdba 、 sysoper 有什么区别 normal 是普通用户 另外两个,你考察他们所具有的权限就知道了 sysdba 拥有最高的系统权限,登陆后是 sys sysoper 主要用来启动、关闭数据库, sysoper 登陆后用户是 public   sysdba 和 sysoper 属于 system privilege ,也称为 administrative privilege ,拥有例如数据库开启关闭之类一些系统管理级别的权限 sysdba 和 sysoper 具体的权限可以看下表:     

 

  系统权限  sysdba  sysoper  区别  Startup( 启动数据库 )  startup  Shutdown( 关闭数据库 )  shutdown  alter database open/mount/backup  alter database open/mount/backup  改变字符集  none  create database( 创建数据库 )  None 不能创建数据库  drop database( 删除数据库 )  none  create spfile  create spfile  alter database archivelog( 归档日志 )  alter database archivelog  alter database recover( 恢复数据库 )  只能完全恢复,不能执行不完全恢复  拥有 restricted session( 会话限制 ) 权限  拥有 restricted session 权限  可以让用户作为 sys 用户连接  可以进行一些基本的操作,但不能查看用户数据  登录之后用户是 sys  登录之后用户是 public 

  system 如果正常登录,它其实就是一个普通的 dba 用户,但是如果以 as sysdba 登录,其结果实际上它是作为 sys 用户登录的,这一点类似 Linux 里面的 sudo 的感觉,从登录信息里面我们可以看出来。因此在 as sysdba 连接数据库后,创建的对象实际上都是生成在 sys 中的。其他用户也是一样,如果 as sysdba 登录,也是作为 sys 用户登录的,看以下实验:   SQL> create user strong identified by strong; 用户已创建。 SQL> conn strong/strong@magick as sysdba; 已连接。 SQL> show user; USER 为 "SYS" SQL> create table test(a int); 表已创建。 SQL> select owner from dba_tables where table_name='test'; 未选定行 // 因为创建表时 oracle 自动转为大写,所以用小写查的时候是不存在的; SQL> select owner from dba_tables where table_name='TEST'; OWNER ------------------------------ SYS Ø          dba 和 sysdba 的区别 dba 、 sysdba 这两个系统角色有什么区别呢 在说明这一点之前我需要说一下 oracle 服务的创建过程 · 创建实例→ · 启动实例→ · 创建数据库 (system 表空间是必须的 ) 启动过程 · 实例启动→ · 装载数据库→ · 打开数据库 sysdba ,是管理 oracle 实例的,它的存在不依赖于整个数据库完全启动,只要实例启动了,他就已经存在,以 sysdba 身份登陆,装载数据库、打开数据库。只有数据库打开了,或者说整个数据库完全启动后, dba 角色才有了存在的基础!

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ecjtuxuan/archive/2010/07/26/5766244.aspx

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3