目录
前言:
一些提前小知识点:
实验一:数据库的最高帐号sys的操作系统认证模式
实验二:数据库的最高帐号sys的密码文件认证模式
参考文章:
最近在跟着张烈老师的oracle讲义里面的实验学习熟悉Oracle,在数据库的体系结构这部分,有2个实验耗了一点儿时间,写个博客来mark一下~~
1、我们知道,oracle连接sys账号的时候,可以直接使用“conn / as sysdba;”这样的命令连接上,不用写账号和密码。这样连接上数据库后,输入“show user”,显示的是SYS用户。
2、SYS是Oracle在创建数据库时默认建立的两个管理员用户之一,拥有SYSDBA权限和SYSOPER权限。
SYSDBA权限:数据库管理员权限,包括启动数据库、修改数据库、关闭数据库、备份数据库、恢复数据库、日志归档、会话限制、管理功能和创建数据库。
SYSOPER权限:数据库操作员权限,包括启动数据库、关闭数据库、备份数据库、恢复数据库、日志归档和会话限制。
这两个权限还有一个小区别就是,SYSDBA权限可以通过操作系统验证和密码文件验证,而SYSOPER权限只能通过密码文件的方式验证。
3、操作系统认证:因为数据库是在OS上的软件,能进入ORACLE帐号,就可以进入到数据库的最高帐号。操作系统认证的两条件。一、操作系统的用户要属于dba组;二、和数据库间的连接是安全的。先把结论打出来,这是我们等下第一个要验证的实验。
密码文件认证:当数据库未启动的时候,可以通过密码验证的方式登录数据库并进行一系列的mount和open操作。
这个实验的目的是为了验证操作系统认证的两条件。一、操作系统的用户要属于dba组;二、和数据库间的连接是安全的。
1.1建立一个自己的用户z3,属于管理员组,而不属于dba组。
控制面板——用户帐户——管理其他账户——创建一个新帐户
1.2切换到z3用户,尝试用“conn / as sysdba”连接,报权限不足
1.3将z3加入到dba管理组,Windows下为ora_dba,其它操作系统为dba
1.3再次切换到z3用户,这次z3用户是属于dba管理组的,再次验证,连接上了。
2. 第一个条件已经验证成功了,我们再来验证第二个条件——和数据库之间的连接是安全的。同样,破坏这个条件。
2.1进入到oracle_home\network\admin,我的oracle_home是dbhome_1,大家根据实际情况自己查找。找到sqlnet.ora文件
2.2纯文本方式打开sqlnet.ora文件,将“SQLNET.AUTHENTICATION_SERVICES = (NTS)”这句话注释掉,变成“#SQLNET.AUTHENTICATION_SERVICES = (NTS)”,注释掉该行后操作系统认证就不起作用了。
2.3切换到z3用户,再次验证
2.4可以再将屏蔽取消掉,再次验证,是可以连上的,我就不放图了。
至此,这个实验就做完了,验证了操作系统认证的两个条件:1.操作系统的用户属于dba管理组;2.与数据库的连接是安全的。
在windows下,密码文件路径oracle_home\database,密码文件名称pwd+sid.ora
在unix下,密码文件路径oracle_home/dbs,密码文件名称pwd+sid,Sid为实例名称
开始实验,我直接放sql的截图好了,我们直接看结果
这里会涉及到我们前面提到的小知识点,sysdba权限和sysoper权限, sysoper只能使用密码文件认证,所以需要用户名和密码都正确才能连接上。
Oracle数据库讲义——张烈