Oracle system用户的实际权限
来源:互联网 发布:网络的脆弱性 编辑:程序博客网 时间:2024/06/05 16:27
Oracle system用户登录数据库也会出现问题吗,下文对Oracle system用户的实际权限作了分析讨论,供您参考学习。
之前新建了一个数据库,通过pl/sql developer登录,使用的是Oracle system用户,身份为SYSDBA,结果报错:insufficient privileges( 权限不足 )。最后只好让sys用户登录后执行grant sysdba to system为Oracle system用户赋予sysdba权限。
这里就有了问题:难道Oracle system用户不是默认具有SYSDBA权限的吗?如果不是,为什么以前很多时候,数据库建好后直接就可以用system作为sysdba登录呢?
首先要了解的是, 在Oracle数据库系统中,用户如果要以特权用户身份(INTERNAL/SYSDBA/SYSOPER)登录Oracle会有两种身份验证的方法:操作系统验证方式(OS)、密码文件验证方式。OS验证方式是指,在登录Oracle时,让操作系统来完成登录用户的权限验证。具体是:安装 Oracle时(注意不是创建Oracle数据库实例时),Oracle数据库服务器所在的操作系统会产生一个用户组(windows中默认是 ORA_DBA),这个组中的用户在登录操作系统后又去登录Oracle时,无论他输入的用户名密码是什么,都能够以sysdba身份登录成功。但是这时候实际上是以sys用户在登录的,所以登陆成功后以 show user命令查看当前登录的用户时,返回的是sys。
密码文件验证是指,Oracle通过一个密码文件对登录的用户进行权限验证,这个文件中记录着 sys用户的口令以及其它 特权用户 的用户名/口令,通俗的说就是这个文件中记录了当前具有sysdba权限的用户名及其口令。通常密码文件是 存放在%ORACLE_HOME%\DATABASE目录下,在使用Oracle Instance Manager创建一数据库实例的时侯,Oracle系统会自动创建一个与实例对应的密码文件,文件名为 PWDSID.ORA,其中SID代表相应的Oracle数据库系统标识符。此密码文件是进行初始数据库管理工作的基础。在此之后,管理员也可以根据需要,使用工具ORAPWD.EXE手工创建密码文件。
那么这两种验证方式在哪里设置呢?具体在Oracle9i中是%ORACLE_HOME%\ora92\network\admin\sqlnet.ora文件中,有如下的配置:
SQLNET.AUTHENTICATION_SERVICES = (NONE) # 这是密码文件验证方式.
SQLNET.AUTHENTICATION_SERVICES = (NTS) # 这是OS验证方式.
说完了验证方式,再说一下sys、system用户的权限。sys用户拥有dba,sysdba,sysoper等角色或权限,是oracle权限最高的用户,所有oracle的数据字典的基表和视图都存放在sys用户中,登陆时也只能用sysdba、sysoper这两个身份,不能用normal身份。 Oracle system用户拥有普通角色权限,只能用normal身份登陆,除非你对它授予了sysdba的系统权限或者syspoer系统权限。
那这样的话,为什么之前很多时候可以直接用system用户作为syadba登录呢?那时因为,当时Oracle的验证方式是OS方式。而这次因为我登录前恰好改动了sqlnet.ora文件,所以就不能以system用户通过sysdba登录了。
- Oracle system用户的实际权限
- Oracle System用户实际权限
- oracle用户的权限
- WINDOWS下SYSTEM用户至高无上的权限
- WINDOWS下system用户至高无上的权限
- Oracle sys和system用户、sysdba 和sysoper系统权限、sysdba和dba角色的区别
- Oracle sys和system用户、sysdba 和sysoper系统权限、sysdba和dba角色的区别
- Oracle sys和system用户、sysdba 和sysoper系统权限、sysdba和dba角色的区别 .
- Oracle sys和system用户、sysdba 和sysoper系统权限、sysdba和dba角色的区别
- Oracle sys和system用户、sysdba 和sysoper系统权限、sysdba和dba角色的区别
- Oracle sys和system用户、sysdba 和sysoper系统权限、sysdba和dba角色的区别
- Oracle sys和system用户、sysdba 和sysoper系统权限、sysdba和dba角色的区别 .
- Oracle sys和system用户、sysdba 和sysoper系统权限、sysdba和dba角色的区别
- Oracle sys和system用户、sysdba 和sysoper系统权限、sysdba和dba角色的区别
- Oracle sys和system用户、sysdba 和sysoper系统权限、sysdba和dba角色的区别
- Oracle sys和system用户、sysdba 和sysoper系统权限、sysdba和dba角色的区别
- Oracle sys和system用户、sysdba 和sysoper系统权限、sysdba和dba角色的区别
- Oracle sys和system用户、sysdba 和sysoper系统权限、sysdba和dba角色的区别
- js 操作cookie的类
- url使用get方式提交时,js中文转码
- continue语句,说点不太常见
- J2EE经典面试题以及华为面试题
- Motorola Xoom平板刷机 记趣
- Oracle system用户的实际权限
- C#的base64编码、解码函数
- VC6下开发OCCI程序的环境配置
- 献给初学.net(C#)的朋友们
- hadoop中的分布式缓存——DistributedCache
- Kettle插件开发(转换步骤)
- C#文件路径
- WINDOWS下OCCI开发包下载
- A股股票小参数计算