当前位置: 主页 > 数据库

oracle数据库密码加密-oracle全库加密

发布时间:2023-02-09 10:45   浏览次数:次   作者:佚名

Oracle关系数据库系统以其优良的性能得到了广泛的应用,保证数据库的安全是数据库管理工作的重要组成部分。 本文基于笔者对Oracle数据库安全管理工作的总结,对Oracle数据库系统密码文件的创建、使用和维护做了详细的介绍,供大家参考。

在Oracle数据库系统中,如果用户想以特权用户的身份登录Oracle数据库,有两种认证方式:即使用操作系统集成的认证方式或者使用Oracle数据库的密码文件进行认证. 因此,管理好密码文件对于控制授权用户从远程或本地登录Oracle数据库系统进行数据库管理工作具有重要意义。

Oracle数据库的密码文件存放超级用户INTERNAL/SYS的密码和其他特权用户的用户名/密码,一般存放在ORACLE_HOME\DATABASE目录下。

创建密码文件

使用Oracle Instance Manager创建数据库实例时,会在ORACLE_HOME\DATABASE目录下自动创建对应的密码文件,文件名为PWDSID.ORA,其中SID代表对应的Oracle数据库系统标识。 这个密码文件是初始数据库管理的基础。 之后,管理员也可以根据需要使用ORAPWD.EXE工具手动创建密码文件。 命令格式如下:

C:\ >ORAPWDFILE=< FILENAME >PASSWORD=< PASSWORD > ENTRIES=< MAX_USERS >

oracle数据库密码加密_oracle全库加密_oracle数据库md5加密

各命令参数的含义为:

FILENAME:密码文件名;

PASSWORD:设置INTERNAL/SYS帐号的密码。

MAX_USERS:密码文件中可以存储的最大用户数,对应允许以SYSDBA/SYSOPER权限登录数据库的最大用户数。 由于在以后的维护中,如果用户数超过这个限制,需要重建密码文件,所以这个参数可以根据需要设置大一些。

有了密码文件后,需要设置初始化参数REMOTE_LOGIN_PASSWORDFILE来控制密码文件的使用状态。

设置初始化参数

oracle全库加密_oracle数据库密码加密_oracle数据库md5加密

在Oracle数据库实例的初始化参数文件中,该参数控制密码文件的使用和状态。 它可以有以下选项:

NONE:表示Oracle系统不使用密码文件oracle数据库密码加密,特权用户的登录通过操作系统进行认证。

EXCLUSIVE:表示只有一个数据库实例可以使用这个密码文件。 只有该设置下的密码文件可以包含INTERNAL/SYS以外的用户信息,即允许将系统权限SYSOPER/SYSDBA授予INTERNAL/SYS以外的用户。

SHARED:表示多个数据库实例可以使用这个密码文件。 在此设置下,密码文件只能识别INTERNAL/SYS账户。 即使该文件包含其他用户信息,也不允许他们以 SYSOPER/SYSDBA 权限登录。 此设置为默认设置。

当REMOTE_LOGIN_PASSWORDFILE参数设置为EXCLUSIVE和SHARED时,Oracle系统搜索密码文件的顺序是:在系统注册表中搜索ORA_SID_PWFILE参数值(即密码文件的全路径名); 如果没有找到,则搜索ORA_PWFILE参数值; 如果还是没有找到,使用默认值ORACLE_HOME\DATABASE\PWDSID.ORA; 其中 SID 表示相应的 Oracle 数据库系统标识符。

在密码文件中添加和删除用户

oracle数据库密码加密_oracle数据库md5加密_oracle全库加密

当初始化参数REMOTE_LOGIN_PASSWORDFILE设置为EXCLUSIVE时,系统允许INTERNAL/SYS以外的用户以管理员身份远程或本地登录Oracle数据库系统进行数据库管理; 这些用户名必须存在于密码文件中。 系统识别他们。 由于创建数据库实例时自动创建的密码文件或使用ORAPWD.EXE工具手动创建的密码文件只包含INTERNAL/SYS用户的信息; 为此,在实际操作中,可能需要添加密码文件或删除其他用户帐号。

由于只有被授予SYSOPER/SYSDBA系统权限的用户才会存在于密码文件中oracle数据库密码加密,当一个用户被授予或撤销SYSOPER/SYSDBA系统权限时,其账号也会相应地被添加到密码文件中或从密码文件中移除。 中删除。 因此,在密码文件中添加或删除某个用户,实际上就是授予或撤销某个用户的SYSOPER/SYSDBA系统权限。

执行该授权操作需要使用SYSDBA权限(或INTERNAL账户)连接数据库,初始化参数REMOTE_LOGIN_PASSWORDFILE必须设置为EXCLUSIVE。 具体操作步骤如下:

使用密码文件登录

有了密码文件,用户就可以使用密码文件以SYSOPER/SYSDBA权限登录Oracle数据库实例。 请注意,初始化参数 REMOTE_LOGIN_PASSWORDFILE 应设置为 EXCLUSIVE 或 SHARED。 任何用户以SYSOPER/SYSDBA权限登录后,都会在SYS用户的schema下。 以下是两个登录示例:

1.以管理员身份登录:

oracle数据库md5加密_oracle数据库密码加密_oracle全库加密

假设用户 scott 已经被授予 SYSDBA 权限,他可以使用以下命令登录:

连接scott/tigerASSYSDBA

2. 以内部身份登录:

连接内部/内部密码

保护密码文件

1.查看密码文件中的成员

oracle数据库密码加密_oracle数据库md5加密_oracle全库加密

您可以查询视图 V$PWFILE_USERS 以获得有关具有 SYSOPER/SYSDBA 系统权限的用户的信息。 表中SYSOPER/SYSDBA列的值为TRUE/FALSE表示用户是否有相应的权限。 这些用户是存在于密码文件中的对应成员。

2.修改密码文件的状态

密码文件的状态信息存储在该文件中,创建时其默认状态为SHARED。 您可以通过更改初始化参数 REMOTE_LOGIN_PASSWORDFILE 的设置来更改密码文件的状态。 启动数据库实例时,Oracle系统从初始化参数文件中读取REMOTE_LOGIN_PASSWORDFILE参数的设置; 加载数据库时,系统将此参数与密码文件的状态进行比较,如果不同,则更新密码文件的状态。 如果方案允许数据库实例从多个客户端启动,由于每个客户端都必须有一个初始化参数文件,所以要保证每个客户端上的初始化参数文件的一致性,避免不小心改变密码文件的状态,导致数据库登录失败。

3.修改密码文件存放位置

密码文件的存放位置可以根据需要移动,但修改后,系统注册表中与密码文件存放位置相关的参数或环境变量也要相应修改。

4.删除密码文件

在删除密码文件之前,确保当前运行的每个数据库实例的初始化参数REMOTE_LOGIN_PASSWORDFILE设置为NONE。 删除密码文件后,如果想以管理员身份连接数据库,必须使用操作系统认证的方式登录。