面试问题问答,oracle的几个小问题问答

Oracle中TNS的完整定义:Transparence Network Substrate,透明网络底层。监听服务是它重要的一部分,不是全部
,不要把TNS当作只是监听器。 ORACLE当中,如果想访问某个服务器,必须要设置TNS,它不像SQL SERVER那样在客
户端自动列举出在局域网内所有的在线服务器,只需在客户端选择需要的服务器,然后使用帐号与密码登录即可。而
ORCAL不能自动列举出网内的服务器,需要通过读取TNS配置文件才能列出经过配置的服务器名。 配置文件名一般为
:tnsnames.ora 存取路径: $ORACLE_HOME\network\admin\tnsnames.ora
我不知道为什么,在命令指示符下这样:sqlplus /nolog,conn /as sysdba这样的方式也能登陆?我没有用密码这样都能
登陆?为什么这样也能登陆做事情? 那哪来的安全性?
1 sqlplus /nolog,conn /as sysdba 之所以能够登录,在于oracle登录时的身份认证方式。可以试一下这个:sqlplus
/nolog,conn abcd/sss as sysdba,你发现也能够登录成功。
2 oracle在登录时,有三种身份认证方式:操作系统身份认证、密码文件认证、数据库认证。而conn /as sysdba是属于
操作系统认证。
为什么这样说呢?你当前电脑开机时登录的用户,也就是进入操作系统的用户,例如是gooooal,它在你电脑的
ora_dba组中。
可以在“我的电脑”单击右键,找到“管理”,选择“本地用户和组”,发现有一个组叫“ora_dba”,双击它,看到成
员列表中有“gooooal”。
也就是在conn /as sysdba,oracle会进行操作系统验证,发现你当前登录的用户就属于ora_dba组,因此才可以登录
成功。
你可以把ora_dba组中的“gooooal”用户删除,再conn /as sysdba,就发现进不去了。
3 密码文件验证可以查阅相关资料,百度oracle的身份验证方式,就可以查到相关资料。
4 其实在linux或unix环境下,安装oracle是要设置很多东西的,比如用户和用户组的设置等,不像在windows下,安装傻瓜化了。
5 关于安全性,如果将oracle安装在本地,其实你本地就是oracle服务器,所以权限高一些。你用哪个用户来启动oracle
实例?哪个用户来mount数据库?哪个用户来打开数据库?从而才能进行之后的select等sql操作?
oracle实例等还没有启动的时候,oracle数据库里面建的用户肯定是不能使用的。所以才会有操作系统身份验证。用
这个用户,来启动oracle实例、转载数据库等。之后才能做oracle表的增删改查。
ORACLE中,sqlplus / as sysdba中,斜杠与as中间有空格。sqlplus /nolog命令中,却没空格,为什么呢?
sqlplus / as sysdba是一种简化写法,其实是省略了用户名和密码,完整的写法是
sqlplus sys/password as sysdba
而sqlplus /nolog是另外的用法了,nolog表示不进行登录,仅仅是进入sqlplus软件而已
Tags:  面试问题问答

延伸阅读

最新评论

发表评论