1. Oracle 默认的三个重要角色
CONNECT创建session角色
RESOURCE创建资源角色,Create table 等等
DBA数据库管理员角色
参考网址:http://www.blogjava.net/caihaibo2008/archive/2008/12/11/245723.html
2.Oracle有两个具有dba角色的用户,分别是sys与system,他们都可以以sysdba身份登录数据库。既然system具有dba角色,为什么还分配他sysoper身份?
【sys】所有oracle的数据字典的基表和视图都存放在sys用户中,这些基表和视图对于oracle的运行是至关重要的,由数据库自己维护,任何用户都不能手动更改。sys用户拥有dba,sysdba,sysoper等角色或权限,是oracle权限最高的用户。
【system】用户用于存放次一级的内部数据,如oracle的一些特性或工具的管理信息。system用户拥有普通dba角色权限。
其次的区别,权限的不同。
【system】用户只能用normal身份登陆em,除非你对它授予了sysdba的系统权限或者syspoer系统权限。
【sys】用户具有“SYSDBA”或者“SYSOPER”系统权限,登陆em也只能用这两个身份,不能用normal。
3.
在今天的数据库实验课上遇到了如下所示的问题:
如上图所示,SYS用户可以正常登录数据库,但是其他用户、甚至随便乱写,以as sysdba的方式也可以成功连接数据库,并且show user显示的仍然是SYS,这是什么原因呢???
Oracle登录的时候有三种登录验证机制
1. 操作系统验证
2. 密码文件验证
3. 数据库验证
一般权限用户的登录验证都是第三种方式,即数据库验证,因为用户名和密码都是存储在数据库当中的。然而,SYS用户(具有SYSDBA和SYSOPER权限的用户)却不是数据库验证。在oracle数据没有启动的时候,SYS用户就可以连接到数据库,并对其进行启动等操作,所以不可能是数据库验证。SYS用户采用的是第一种和第二种验证方式。
Linux下Oracle的启动过程
lsnrctl start 启动监听(接收用户请求)。此时数据库没启动,所以不能验证普通权限用户
sqlplus /nolog 启动sqlplus
conn sys/oracle as sysdba,监听看到是sysdba用户,就进行操作系统验证或者文件验证,如果正确
startup 启动数据库实例。
当此时再以普通权限用户连接时,就直接将请求发送给数据库进行数据库验证。
Windows下Oracle的启动过程
lsnrctl start 启动监听
oradim -startup -sid orcl 将复杂的过程封装了
conn / as sysdba; 这样写居然可以连接!或者随便写个名字都可以连接,只要/保留就可以。如下图:
因为,默认采用的验证方式是操作系统验证!如下图所示,在计算机管理里面的ORA_DBA组有当前计算机操作系统用户uestcong
当我把uestcong这个用户删除之后,再重新使用conn a/b as sysdba登录,就出现如下所示的情况了:
显示权限不足,没有验证通过。
以uestcong登录操作系统时,默认就是DBA管理员,在监听看到as sysdba时,就首先进行操作系统验证,操作系统的用户uestcong当然就能通过验证。当我把uestcong删除之后,就会用密码文件的方式验证,此时把sys和正确的密码重新连接时,就可以直接连接了。
所以在使用oracle进行开发时,应该把操作系统验证取消,使用密码文件验证的方式。如果密码忘记,可以把密码文件删除,用新的密码文件代替就可以。
密码文件的路径:D:\oraclexe\app\oracle\product\10.2.0\server\database\PWDXE.ora(PWDXE.ora我使用的是XE版本),当把密码文件删除时,再用正确的用户名密码连接,就无法进行连接了。
感谢传智博客王治国的精彩讲解!
参考网址:http://topic.csdn.net/u/20110823/18/e9846996-22f4-4429-a7f5-47877a729ef0.html
分享到:
相关推荐
通过sqlplus可以连接数据库根据用户权限进行数据或者设定操作,这篇文章介绍一下常用的连接方式。 环境准备 使用Oracle的精简版创建docker方式的demo环境,详细可参看: https://www.jb51.net/article/153533.htm ...
自己写了一个批处理,直接运行BAT就行了,自己看着修改,这样 Oracle数据库的DBA WEB就可以管理了,老鸟绕过吧~ 我是编程新手~QQ:540117918 希望大家多支持!
" "回退方案 "删除用户:例如创建了一个用户 A,要删除它可以这样 " " "做 " " " " " "connect sys/密码 as sysdba; " " " " " "drop user A cascade;//就这样用户就被删除了 " "判断依据 "标记用户用途,定期建立...
系统级的环境变量一般在/etc/profile 文件中定义 在 CAMS 系统 与数据库 相关的环境变量就定义在/etc/profile 文件中 如下所示 export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/...
第一课:客户端 ... sqlplus sys/bjsxt as sysdba 2. alter user scott account unlock;(解锁) 第三课:table structure 1. 描述某一张表:desc 表名 2. select * from 表名 第四课:select 语句:
说明:用于连接到oracle数据库,也可实现用户的切换 用法:conn 用户名/密码 [as sysdba/sysoper] 注意:当用特权用户连接时,必须带上sysdba或sysoper 例子: 3. 断开连接(disc) 说明:断开与当前数据库的连接 ...
Oracle12c安装使用教程,包含各类资源下载链接。 1.启动 1.#su - oracle 切换到 oracle 用户且切换到它的环境 2.$lsnrctl status 查看监听及数据库状态 3.$lsnrctl start 启动监听 4.$sqlplus / as sysdba 以 DBA ...
碎片处理工具,处理碎片至使oracle数据库不能启动, 解决方法: 进入dos: 以DBA用户登录,具体命令是 sqlplus /NOLOG SQL>connect sys/change_on_install as sysdba 提示:已成功 SQL>shutdown normal 提示:...
用特权用户身份连接时,必须带上as sysdba 或是 as sysoper 例:conn scott/tiger; show user; 显示当前用户 2.断开连接命令 (2) disc[onnect] 说明:该命令用来断开与当前数据库的连接 (3)passw[ord] 说明:该...
Oracle数据库有哪几种启动方式 说明: 有以下几种启动方式: 1、startup nomount 非安装启动,这种方式启动下可执行:重建控制文件、重建数据库 读取init.ora文件,启动instance,即启动SGA和后台进程,这种启动...
如果数据库还未启动aud$不可用,那么像conn /as sysdba这样的连接信息,只能记录在其它地方。 如果是windows平台,audti trail会记录在windows的事件管理中,如果是linux/unix平台则会记录在audit_file_dest参数指定...
5.sql: conn /as sysdba;用dba的身份登录 6.修改过期的用户密码设置: 修改用户密码:alter user XXX identified by XXX 修改用户密码之后,重新使用修改的用户密码连接数据库就ok了,假如仍然还有锁定用户操作, ...
为用户oracle设置环境变量,并允许使用X终端 [root@dbserver ~]# groupadd oinstall //安装组 [root@dbserver ~]# groupadd dba //管理组 [root@dbserver ~]# useradd -g oinstall -G dba oracle [root@dbserver ~]...
在进行数据库的恢复时,一定要了解Oracle数据库的原理,分析故障的原因,然后针对故障的情况进行相应的恢复。例如以下情况: - Oracle程序文件损坏? - control file损坏? - Online redo log损坏? - datafile...
SQL> conn system/hundsun as sysdba; 停掉数据库 SQL>shutdown immediate; 启动数据库到mount状态下 SQL> STARTUP MOUNT; Java代码 收藏代码 ORACLE instance started. Total System Global Area ...
conn sys /sunshine@mis as sysdba -- select * from dba_profiles -- SELECT * FROM V$PARAMETER; --去掉字符大小写敏感设置:禁止密码大小写敏感 show parameter sec_case_sensitive_logon alter system set sec_...
Oracle数据库有哪几种启动方式 说明: 有以下几种启动方式: 1、startup nomount 非安装启动,这种方式启动下可执行:重建控制文件、重建数据库 读取init.ora文件,启动instance,即启动SGA和后台进程,这种启动...
SQL*PLUS命令 启动数据库:在终端输入 sqlplus '/ as sysdba' 进入 sqlplus,在 ...在cmd中输入:sqlplus 用户名/密码@网络服务名 [as sysdba/sysoper/sysasm] --连接到oracle并创建会话【DBA身份:sys或system】
日常管理维护一个oracle数据库服务器的时,经常会碰到修改view,table结构的情况,而且由于oracle view,函数,存储过程等对象的相互关联的关系,经常会由于一个view,table,fun,proc的修改而导致相关的对象失效。...
数据库导出路径为oracle数据库备份/导入设置路径:E:\app\Hejiah\admin\orcl\dpdump exp username/password@sid file=d:\exp.dmp full=y imp wenhb/1@orcl file=D:\app\Hejiah\admin\orcl\dpdump\wenhb.dmp full=y ...