第四章:Oracle 数据库启动流程
4.1 oracle 的服务启动顺序
oracle 启动流程——windows 下
(1)lsnrctl start (启动监听)
(2)oradim—startu—sid 数据库实例名
oracle 启动流程——linux 下
(1)lsnctl start(启动监听)
(2)sqlplus sys/change_on_install as sysdba(以sysdba 身份登录,在oracle 10g 后可以这样写)
sqlplus /nolog conn sys/change_on_install as sysdba
(3)startup
4.2 oracle 认证方式
在客户端上两种方式成功登录 sqlplus
——> scott@orcl-->password(scott 的密码)
——> scott/密码@orcl
oracle 数据库有两个管理员
sys:角色时dba 角色,拥有创建数据库的权限。
system:operate 的校色,拥有除了创建数据库
oracle 安装过程中会设置ora_dba,oinstall 这两个组
操作系统验证
当oracle 服务器安装完毕之后,默认操作系统的 administrator 用户就进入了 ora_dba 组里面,因此在oracle 服务器端可以使用操作系统验证,
例如:
sql->conn system/xxx(密码随意写) as sysdba sql->show user; #结果是sys 用户登录。
打开 ora_dba组,把adminstrator 用户移除 ora_dba 组,使用 adminstrator
例如:
sql->conn system/xxx(密码随意写) as sysdba #登录,发现登录不了。
Oracle 分为普通用户与特权用户
- 普通用户:默认时使用数据库验证方式登录的(con system/HIS 不加as )
- 特权用户:以操作系统认证方式验证(conn system/xxx as sysdba),dbms 如出现 as sysdba 则表示以特权用户登录,此时就不需要数据库方式验证了,也不验证密码了,直接切换为 sys 登录
验证顺序:先验证特权用户,如果不在ora_dba 组里面,再验证普通用户。
根据安全需求,能否设定不以操作系统验证让用户登录呢?
找到oracle 的安装目录下的 sqlnet.ora 文件(一般存在与 network\admin目录下)
例如:
C:\app\adminstrator\product\11.2.0\dbhome_1\NETWORK\ADMIN 路径下打开监听文件sqlnet.ora文件 将:SQLNET.AUTHENTICATION_SERVICES= (NTS) (NTS 默认为就是支持操作系统验证,将NTS改成NONE)
丢失管理员密码后如何解决?
1、查看 pwd+ 实例名文件,例如pwdorcl (ora 就是实例名);
- 例如:
C:\app\administrator\product\11.2.0\dbhome_1\database
2、把pwdorcl 做个备份;
3、生成新的密码文件,在oracle 服务端 dos 窗口操作;
例如:
C:\Users\administrator> orapwd file=C:\app\administrator\product\11.2.0\dbhome_1\database\pwdorcl.ora passwpord=system entries=10
4、重启实例,才能是新的密码生效