最近用windows本地的oracle时,sqlplus / as sysdba连接数据库老是报ora-01031的错误,在网上查阅了大量教程,提供的解决思路大致如下:
方案一:将administator用户加入到ora_dba组
采用此方案的博主一直认为ora-01031错误时由于administrator用户不在ora_dba组,并提供了检查adminstrator用户是否在ora_dba组、以及将administrator用户加入到ora_dba组的方法。
此法或许可行,但是我的windows10是家庭版,在系统层面不提供用户和组管理功能,此方案未能解决我的问题
方案二:使用oracle自带的administration assistant工具
使用工具将当前计算机用户添加到“操作系统数据库管理员”中
此方法未予验证,看到这个帖子的时候,我已经弄好了
方案三:我的解决方案
进入到本地安装oracle的最外层目录,我是安装在d盘的app文件夹下,“右键-属性-安全”
点击编辑,将能勾的权限都勾上,勾好后确定,再去运行sqlplus / as sysdba,发现不再报错。
小结:
方案一或许能解决特定场景下的问题,方案二我未予验证,但是是oracle自身提供的工具,或许是最实用的方法,最后,我的方案适用场景有限。
我的方案是修改了文件的操作权限,推测应该是我的计算机进行了某种设置,使得d盘的文件的权限发生变化,导致oracle无法顺利访问安装路径下的文件,从而造成ora-01031的错误。
适用场景,计算机是windows10家庭版,没有用户和组管理功能,oracle安装目录的文件夹的操作权限变化,文件的读写权限被限制。
灵感来源:
之所以会考虑到文件的读写权限,是因为在修改listener文件时无法保存,提示文件无编辑权限,另外,oracle的oradba.exe文件闪退,由此想到可能时文件的读写权限引发的问题