理论教育 Oracle数据库管理和开发:数据库用户身份验证

Oracle数据库管理和开发:数据库用户身份验证

时间:2023-10-30 理论教育 版权反馈
【摘要】:数据库管理员和最终用户是配置、管理和使用数据库系统的主要人员。3)定义数据的安全性要求和完整性约束DBA负责建立数据库系统的用户,以及为不同的用户设定详细的存取权限、数据的保密级别和完整性约束条件,保证数据库的安全。细心的读者会发现,在连接到Oracle数据库管理系统的sqlplus时,通常可以采用以下3种方式登录:这3种登录方式刚好验证了3种身份认证方式。

Oracle数据库管理和开发:数据库用户身份验证

数据库管理员和最终用户是配置、管理和使用数据库系统的主要人员。不同人员群组的工作范围和职责有所不同。

(1)系统管理员(DBA)

数据库的系统管理员(DBA)是一个非常重要的角色,数据库系统的正常和高效率运行,很大程度上依赖于系统管理员所做的工作。系统管理员可以是一个或多个人,且具有较高的权限,全面管理、监督和配置数据库系统,其具体的工作主要包括下述几个方面。

1)参与确定数据库中的信息内容和结构

DBA要参与数据库设计的全部过程,并和系统分析员、应用程序员、最终用户密切合作,确定数据库中要存放哪些信息,结构如何设计。

2)参与确定数据库存储结构和存取策略

DBA要根据最终用户的要求和具体情况,决定数据库中数据的存储结构和存取策略等,以便最大限度地提高系统的性能和存储空间的利用率。

3)定义数据的安全性要求和完整性约束

DBA负责建立数据库系统的用户,以及为不同的用户设定详细的存取权限、数据的保密级别和完整性约束条件,保证数据库的安全。

4)监控数据库的使用和运行

在数据库系统运行过程中,DBA要随时监控系统的运行情况,及时处理运行过程中出现的各种问题。如果系统发生软、硬件故障,DBA要在最短的时间内进行分析、排查,保证系统的畅通。另外,DBA要采用一定的备份策略,定期进行数据转储,并及时跟踪和维护系统日志等。如果数据库遭到损坏,DBA必须尽快将数据库恢复到正确状态,使前台的日常业务逻辑不致受到大的影响。

5)负责数据库的结构重组和性能改进

数据库系统在运行一段时间后,随着数据量的不断增加,系统的效率会有所降低。DBA要在系统运行期间及时跟踪系统的处理效率、空间利用率等指标,并进行记录和分析,根据系统的软硬件环境以及个人的工作经验,对数据库进行整理和重组,以提高系统的性能。但需注意:整理和重组的过程不能影响最终用户对系统的正常使用。

(2)最终用户

最终用户即最终使用数据库系统的人员。最终用户不直接操作数据库,但可以通过应用程序的界面与数据库进行交互,间接存取数据。

最终用户一般分为下述3类。

1)偶然用户

偶然用户不经常访问数据库,每次访问可能只着重于某些特定的数据库信息。这些用户一般是企业或单位的中高级管理人员。

2)简单用户

数据库中的绝大多数最终用户都是简单用户,这些用户通过使用应用程序的界面存取数据库,可能的操作是查询、插入或修改数据库记录。例如,ERP系统中的仓库管理员就属于此类用户。

3)复杂用户

复杂用户包括一些具有特殊技术背景最终用户。这些用户一般都比较熟悉数据库管理系统的功能和结构,也比较熟悉具体的需求,可以直接使用数据库语言访问数据库,利用数据库接口编写自定义的应用程序等。(www.daowen.com)

(3)Oracle用户身份验证

Oracle用户要连接到数据库管理系统中,主要通过下述3种方式进行身份认证方式。

①数据库身份认证:数据库用户口令以加密方式保存在数据库内部。

②外部身份认证:用户的账户由Oracle数据库管理,但口令管理和身份验证由外部服务(操作系统或网络服务)完成。登录时,不输入用户名和口令,而直接从外部服务中获取当前用户的登录信息。

③全局身份认证:使用网络中的安全管理服务器(Oracle Enterprise Security Manager,全局范围管理用户的组件)对用户进行身份认证。

细心的读者会发现,在连接到Oracle数据库管理系统的sqlplus时,通常可以采用以下3种方式登录:

这3种登录方式刚好验证了3种身份认证方式。从数据库系统和操作系统原理来看,既然数据库管理系统可以通过不同的方式进行身份认证,那么就存在着相应的文件来告诉数据库管理系统应该采取哪种方式来进行认证,因此关键是需要知道Oracle数据库采用操作系统OS认证还是采用密码文件认证,或者两种都支持,这时需要通过sqlnet.ora这个文件来配置网络连接时所使用的连接方式,sqlnet.ora文件在$Oracle_home\NETWORK\ADMIN下。

在网络配置文件sqlnet.ora文件中对参数“SQLNET.AUTHENTICATION_SERVICES=”进行设置,主要有以下3个值进行选择:

①all:对Linux系统,支持OS认证和密码文件认证。对Windows系统,实际实验是不支持此参数,验证失败。

②nts:用于Windows平台,此设置表示支持OS认证。

③None:此设置值在Windows和Linux的作用是一样的,指定Oracle只使用密码文件认证。

在Windows下,SQLNET.AUTHENTICATION_SERVICES必须设置为NTS才能使用OS认证;不设置或者设置为其他任何值都不能使用OS认证。

在sqlnet.ora中配置了参数是操作系统OS认证方式就可以对Oracle用户属于DBA组不使用密码登录,比如sys和system用户就可以免密码登录。

如果要采用密码文件认证,这时还需要考虑spfile参数文件中remote_login_passwordfile参数设置,该参数有以下3种值:

①none:不使用密码文件认证。

②exclusive:要密码文件认证,自己独占使用(默认值)。

③shared:要密码文件认证,不同实例dba用户可以共享密码文件。

要使用密码文件设置,该参数就不能使用none。

在Windows操作系统下,密码(口令)文件默认的位置是$Oracle_HOME\database目录,默认的文件名是pwd<Oracle_SID>.ora;在Unix/linux操作系统下,密码文件默认的位置是$Oracle_HOME/dbs目录,默认的文件名是orapw<Oracle_SID>。

Oracle身份认证的基本顺序为:先由sqlnet.ora中SQLNET.AUTHENTICATION_SERVICES的设置值来决定是使用OS认证还是密码文件认证;如果使用密码文件认证的话就要看后面两个条件了:设置pfile文件中的REMOTE_LOGIN_PASSWORDFILE参数设置为非NONE而且密码文件orapw$SID(Linux)|PWD$SID.ora(Windows)存在的话就能正常使用密码文件认证,否则将会失败。

如果密码文件丢失或损坏,则可以通过OS方式登录之后,重新创建密码文件,命令如下:

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈