还是关于system和sys登录的权限问题

surefire 2005-07-20 03:52:40
搜索论坛两天了, 还是没有解决问题,发个帖问一下,期盼热心朋友帮忙看一下。
Oracle9i安装在Solaris 8上,通过Windows 2000 Server客户端访问数据库。
数据库是在安装第三方应用软件(Motorola的OMC-u,移动通信方面的一个维护操作软件)时自动安装上去的,所以Oracle的安装过程我也不清楚。其上已经建立四个数据库,其中一个是BO_DB,通过sqlplus或者Enterprise Manager Console用system登陆BO_DB的时候只能用Normal身份登陆,而sys根本不能登陆,以SYSDBA和SYSOPER都提示说没有权限。
我用system以Normal身份进去以后,看到system已经被授予了DBA和AQ_ADMINISTRATOR_ROLE角色,已经授予的系统权限为UNLIMITED TABLESPACE。
查了很多资料,说修改密码文件,可我又不知道怎么改。我用Oracle的用户名登陆到Solaris上以后,在/usr/ORACLE/u01/app/oracle/product/9.2.0.1.0/dbs目录下找到了init.ora和initbo_db.ora文件,这是不是就是要设置remote_login_passwordfile变量的文件啊?如果要建立密码文件,可以用已经登陆到Solaris的这个用户直接建立密码文件吗?放到哪里?和init.oar文件在同一个目录里吗?怎样命名?
在Oracle的官方资料里面都讲得很粗略,也没有介绍出现这种问题的时候如何解决,希望哪位朋友详细说明一下,谢谢!
附带问一个问题,DBA 和 SYSDBA是一样的吗?我在一个资料上看到说是不一样的,系统默认的是给system授予DBA,而不是SYSDBA!
...全文
663 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
daydayupliq 2005-07-29
  • 打赏
  • 举报
回复
ORACLE博大精深,众人皆是山中行者,所谓“高山仰止,景行行止”。
每个人由于所处角度不同,想到的也就不同,答帖者所回复的一定是他最初想到的可能出现问题的地方。开办论坛的目的也应该就是促进大家交流!

倒是希望楼主过个一年半载,再回来看看本帖吧!
cxn0808 2005-07-28
  • 打赏
  • 举报
回复
to surefire()

开放论坛是让大家进来讨论的,既然是讨论,其中有对也有错,错误是在所难免的,我想大家在面对一个问题的时候总是想尽办法来为你解答的。也要看到现今并不是很多人精通oracle,这样的话错漏是难免的。oracle是个很庞大的体系,一般人是不可能做到面面俱到,全盘精通的,所以回答之中有些用语不准或是理解得不太准确也是可以原谅的,这怎么能叫做不负责任呢?大家是有话就说了,尽量帮助你,也并不是说某个人的办法一定可行,需要你在具体环境下用实践验证(因为不可能每个人都有你这样的的环境)。
你说你是本着探讨的心态来问问题的,并且说这个论坛有些浮躁,我想你在这里严辞凿凿地说这个人不好,那个人不负责任,这本身就是一种浮躁了!技术探讨本不应该这样的。我们广开言路,听听大家不同的思路不是很好吗,只要能解决问题就好了。关键还是在于你自己要多查资料,问题最终还是由你来解决的,你才是问题的主角啊!
csdn论坛很开放,版块很多,难免有人进来灌水!
liuyi8903(风继续吹)和bzszp(SongZip),他们对论坛做的贡献是大家有目共睹的,你又何必在此抓别人的漏洞说个不停呢!
哥们,成熟点吧!
zheninchangjiang 2005-07-24
  • 打赏
  • 举报
回复
学术交流成了对质了,不这请大家不要这么样.是对是错由时间来证明,何必心中放不下呢?
多一点问题多一点交流,要是我喜欢还来不及呢,可惜我都30了,只是被迫要学ORACLE.汗哪!
surefire 2005-07-24
  • 打赏
  • 举报
回复
to liuyi8903(风继续吹)
我的意思就是:任何用户以sysdba权限登录并不一定相当于SYS用户,因为9i中默认情况下SYS并不具有sysdba权限。
还有请你区分一下Role和Privilege。拥有DBA Role的用户不代表就拥有sysdba Privilege!依据就是Oracle 9i的官方文档以及自己的实验。
surefire 2005-07-24
  • 打赏
  • 举报
回复
to liuyi8903(风继续吹)
"朋友,请你看清楚了。我说的是以sysdba身份登录。而且是任何用户(假设可以)
以sysdba身份登录那么都是相当于sys身份(因为默认的sys就是sysdba)。"
----------------------------------
假设你说的是对的,sys默认是有sysdba或者sysoper系统权限,但我用sys以sysdba或者sysoper进数据库却提示权限不够,不知做何解?我只知道Oracle 9i的官方文档里很明白的写着:
Note: The DBA role does not include the SYSDBA or SYSOPER system privileges.
当然sys还会有许多除DBA之外的其他role,如果说除了DBA role之外还有其他role还能默认拥有SYSDBA 或者 SYSOPER权限,那么麻烦你告知。
mittee 2005-07-23
  • 打赏
  • 举报
回复
打口水仗有什么意思呢?
懂了就告诉大家就行了,一件小事
liuyi8903 2005-07-23
  • 打赏
  • 举报
回复
bzszp斑主为大家所做的贡献我想大家都是有目共睹的。





liuyi8903 2005-07-23
  • 打赏
  • 举报
回复
回复人: surefire() ( ) 信誉:96 2005-07-22 18:13:00 得分: 0


to liuyi8903(风继续吹)
"所有用户如果以sysdba登录.都是等同于sys用户的.这个你明白么?"
这个我还真不明白,你有没有看过Oracle的文档?在9i里sys和system默认都会有DBA的role,但是并不代表sys就有SYSDBA的system privilege。
=========================================================================

朋友,请你看清楚了。我说的是以sysdba身份登录。而且是任何用户(假设可以)
以sysdba身份登录那么都是相当于sys身份(因为默认的sys就是sysdba)。
surefire 2005-07-22
  • 打赏
  • 举报
回复
最后想说的是,在Oracle 9i里,密码文件的命名是orapwSID,比如我的BO_DB数据库的密码文件就可以命名为orapwbo_db,其他的数据库我也做了相应的测试,证明是可行的。
但是orapw这个文件好象能被BO_DB数据库使用,但是其他的数据库却不能使用,我的理解是orapw相当于一个默认的文件,当系统找不到具体数据库对应的密码文件时就来读orapw这个文件,可是我删掉所有的密码文件只留orapw这个文件,去登陆BO_DB以外的数据库时仍然不能以SYSDBA登陆,只有BO_DB可以。感觉很奇怪,不知道怎么回事。可能我的理解有错,但究竟是怎么回事,不清楚!
surefire 2005-07-22
  • 打赏
  • 举报
回复
bzszp(SongZip)
如果你还看到这个帖,我跟你说一声Sorry。但是我还是要批评你,为什么?因为你说的情况并不能成为理由。我也知道Oracle因为版本不同而操作肯定会有不同,在提问之前我把所有的情况都整理了一下,前面写了是Oracle 9i+Solaris 8的环境,这些字你大概不会不认识吧?既然你并不清楚8i和9i之前有什么区别,为什么还那么肯定地对我说“注意,密码部分一定要大写”?再怎么讲,你也应该加上“我的环境是Oracle 8i”之类的字样!你知道吗?你是两颗红星呢,你说的话对我这种菜鸟来说是至理名言呢,中国人大都有点迷信“权威”,我也不例外啊!
扪心自问,你这样的回答,负责任吗?
所以,对于不负责任的回帖,我从来都觉得每个人都有资格去指责!!!
surefire 2005-07-22
  • 打赏
  • 举报
回复
to liuyi8903(风继续吹)
"所有用户如果以sysdba登录.都是等同于sys用户的.这个你明白么?"
这个我还真不明白,你有没有看过Oracle的文档?在9i里sys和system默认都会有DBA的role,但是并不代表sys就有SYSDBA的system privilege。通过system以Normal进去后在DBA下面看不到SYSDBA的权限,sys用户也没有该权限。但经过设置密码文件之后就可以看到SYS用户具有了SYSDBA权限!
所以你那句话并不正确。

我是什么也不懂,但我也不怕错,我怕的是那些浮躁的东西弥漫整个论坛!我问问题是没错,需要帮助是没错,但我是抱着一起探讨的心态来的,但是看不到别人这样做,大都很武断地说应该怎样怎样,根本就没考虑具体情况,有的甚至是一知半解,CSDN鼓吹的那些什么什么精神到哪里去了?

也许我的言辞太过分,如果不是真的很失望,我才懒得说这么多废话!
bzszp 2005-07-22
  • 打赏
  • 举报
回复
surefire:
有些东西在8i和9i可能有些区别
默认情况下,sys有sysdba权限,当然你可以通过这个用户吧sysdba赋给任何一个用户。

我没有能力也没有必要 针对你的问题 单独配置环境帮你测试一下向大小写这样的问题吧!

所有这些回复,只是提供参考而已,有什么问题,有投诉专区。
再说你也没有资格和权力指责回贴的人
别人给你提供参考,不分青红皂白反咬一口。
:|



liuyi8903 2005-07-22
  • 打赏
  • 举报
回复
to surefire()

别人是来帮助你的,你凭什么这么说?
就算是错误.那怎么了?你觉得你自己很懂么?
所有用户如果以sysdba登录.都是等同于sys用户的.这个你明白么?
多看点书再来叫吧!
学习东西不要怕说错.
surefire 2005-07-21
  • 打赏
  • 举报
回复
多谢各位,问题已经解决!
但是如果以后有什么问题绝对不会再来这里问了!
许多人自己根本就不知道,在那里乱叫,反而误导别人!
分数那么重要吗?有些人为了给自己多弄些分数,乱灌,真是没道理!

在Oracle的官方资料中有写:DBA默认是没有SYSDBA和SYSOPER权限的。
前面的朋友说的设置密码文件的方法都没有错,但是这些东西在Oracle Document里也有写。问题的关键是密码文件的命名。可能是Oracle的版本原因,我在Solaris+Oracle 9i的环境下设置的密码文件名为orapw,环境变量remote_login_passwordfile=EXCLUSIVE设置好后,在Solaris上重新启动数据库,就可以用SYS以SYSDBA权限登陆数据库,也可以grant权限给SYSTEM了,问题解决!
可能需要注意的就是具体情况

而最可悲的是这个网上的人都没什么耐心,知道一点点皮毛,也不分情况一顿乱讲,不要怪我需要帮助还这么刻薄,我也是看了很多教新人怎么提问的帖子,很认真的写出了自己的问题和情况,以及自己做出的一些尝试和疑问,可惜的是这个论坛缺乏某种东西……太浮躁了!

所以这个帖子我是不会结帖的!
skystar99047 2005-07-21
  • 打赏
  • 举报
回复
remote_login_passwordfile=EXCLUSIVE --> remote_login_passwordfile=SHARED
bzszp 2005-07-21
  • 打赏
  • 举报
回复
只有sys用户具有sysdba权限,是全先最高的
重建密码文件
ORAPWD FILE=< FILENAME > PASSWORD 注意 密码部分一定要大写
cxn0808 2005-07-21
  • 打赏
  • 举报
回复
建立密码文件:ORAPWD FILE=< FILENAME > PASSWORD
然后修改参数文件:
remote_login_passwordfile=EXCLUSIVE
看看在Solaris单机环境下能不能用sys来登陆
surefire 2005-07-21
  • 打赏
  • 举报
回复
谁有没有遇到过这种问题啊,如果没有遇到就不要误导我好不好?第一次使用ORACEL,很多东西都是很迷茫的,越搞越糊涂了!
surefire 2005-07-21
  • 打赏
  • 举报
回复
To :bzszp(SongZip)
为什么密码部分要大写呢?我在Oracle的官方文档里看到SYS和SYSTEM都在安装的时候就授予了DBA角色。但是默认情况下DBA角色又不拥有SYSDBA或者SYSOPER系统权限,就算SYS拥有SYSDBA权限,但是为什么又不能以SYSDBA登陆数据库呢?
重建密码文件后,重起了Solaris,但是还是不行,不知道为什么!
mittee 2005-07-20
  • 打赏
  • 举报
回复
DBA角色的权限应该是最高的把。
密码那个文件叫inipwxxx.ora 就在dbs目录下
加载更多回复(5)

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧