#yaspwd
yaspwd工具用于维护数据库中系统用户(如SYS)的密码和导出UKEY的公钥文件。该类用户的安全等级较高,请谨慎操作本工具。
# 前提条件
本工具依赖于libyas_infra.so和libcrypto.so,导出UKEY公钥则额外需要ukey_gm3000.so,请先确认如下环境变量已配置。
$ export LD_LIBRARY_PATH=${YASDB_HOME}/lib:${LD_LIBRARY_PATH}
# 命令格式
使用本工具的命令格式如下:
yaspwd file=<fname> password=<password>
input_file=<input-fname>
'sys={y | password}'
'sysbackup={y | password}'
'sysdg={y | password}'
'syskm={y | password}'
其中:
- '='前后不应有空格,否则命令无法执行。
- 多次执行相同命令时,后续输入密码将覆盖之前的密码。
- SYS用户的密码为必输项,即执行本命令必须为其指定密码,其他系统用户(SYSBACKUP/SYSDG/SYSKM)则可选。
Note:
目前YashanDB的系统用户只有SYS,仅需要指定SYS用户的密码。
fname
密码文件名称,可带路径指定,未指定路径时,在当前目录下生成文件。不可指定为已存在的文件,否则报错。
Caution:
本工具支持将密码文件指定到任意位置,均可以成功生成,但该密码文件是否生效取决于YashanDB的配置参数PASSWORD_FILE,该参数用于定义系统用户的密码获取路径及文件名称,初始值默认为$YASDB_DATA/instance/yasdb.pwd。
用户只有在将密码文件按照PASSWORD_FILE所指定的路径及名称存放,文件中的密码才会生效。
password
由用户输入的字符串所组成的密码内容,该字符串需遵循如下要求:
- 密码长度为8 - 64位。
- 密码必须同时包含数字、字母和特殊字符。
- 密码中不能包含对应的用户名称。
input-fname
密码文件名称,该文件必须为已存在的文件,用于从该文件内容生成新的密码文件。
y
指定此选项时,将提示用户为其对应的用户输入新密码。
# 生成密码
在数据库完成安装后,可通过如下操作步骤为系统用户生成新密码:
1.以数据库安装用户登录数据库服务器,进入配置参数PASSWORD_FILE指定的路径(默认为$YASDB_DATA/instance/)。
2.查看路径下是否已存在yasdb.pwd文件,如已存在,将其更名。
$ mv yasdb.pwd yasdb1.pwd
3.通过yaspwd命令生成密码,其中SYS用户密码为默认和必须的指定项。
#方式一:仅指定密码文件,根据提示输入SYS用户的密码
$ yaspwd file=yasdb.pwd
Enter password for SYS:
#方式二:同时指定密码文件和SYS用户密码
$ yaspwd file=yasdb.pwd password=yasdb_123
#方式三:同时指定其他系统用户密码
$ yaspwd file=yasdb.pwd sysbackup=y
$ yaspwd file=yasdb.pwd password=yasdb_123 sysbackup=yasdb_1234
#方式四:通过其他密码文件生成新密码文件,此时SYS用户密码也被复制
$ yaspwd file=yasdb.pwd input_file=yasdb_input.pwd
#方式五:通过其他密码文件生成新密码文件,并重新指定SYS密码(不可指定其他系统用户密码)
$ yaspwd file=yasdb.pwd input_file=yasdb_input.pwd sys=y
Enter password for SYS:
4.使用新密码即可成功登录YashanDB。
# 修改密码
在数据库运行过程中,可随时通过yaspwd修改系统用户密码。
Warn:
密码为数据库用户的最基本鉴权,请确保在不对系统运行造成影响的情况下,执行修改密码操作。
本工具仅能修改单个节点的系统用户密码,如需修改数据库集群中所有节点的系统用户密码见yasboot章节描述。
用户可通过如下操作步骤为系统用户指定新密码:
1.以数据库安装用户登录数据库服务器。
2.通过yaspwd命令修改密码。
#方式一:仅指定密码文件,根据提示输入SYS用户的密码
$ yaspwd file=yasdb_new.pwd
Enter password for SYS:
#方式二:同时指定密码文件和SYS用户密码
$ yaspwd file=yasdb_new.pwd password=yasdb_123
#方式三:同时指定其他系统用户密码
$ yaspwd file=yasdb_new.pwd sysbackup=y
$ yaspwd file=yasdb_new.pwd password=yasdb_123 sysbackup=yasdb_1234
#方式四:通过其他密码文件生成新密码文件,此时SYS用户密码也被复制
$ yaspwd file=yasdb_new.pwd input_file=yasdb_input.pwd
#方式五:通过其他密码文件生成新密码文件,并重新指定SYS密码(不可指定其他系统用户密码)
$ yaspwd file=yasdb_new.pwd input_file=yasdb_input.pwd sys=y
Enter password for SYS:
3.使用新密码登录YashanDB,当登录失败时,继续执行下述步骤。
4.使用旧密码登录YashanDB,查看PASSWORD_FILE参数值。
SHOW PARAMETER PASSWORD_FILE;
NAME VALUE
------------------- -------------------------------------------------
PASSWORD_FILE /home/yashan/YASDB_DATA/cn-1-1-1/instance/a.pwd
5.修改PASSWORD_FILE参数值为新密码文件(重启生效),或者将新密码文件更名为PASSWORD_FILE参数值。
--修改PASSWORD_FILE参数示例,其中参数值请修改为实际新密码文件路径及名称
ALTER SYSTEM SET PASSWORD_FILE=/home/yashan/YASDB_DATA/cn-1-1-1/instance/yasdb_new.pwd SCOPE=SPFILE;
--上述命令成功后,重启数据库
6.使用新密码即可成功登录YashanDB。
# UKEY导出公钥
在使用UKEY认证登录前,需初始化UKEY并导出公钥。
Caution:
UKEY的初始化和导出过程中,设备上只能有一个UKEY。
用户可通过如下操作步骤导出UKEY公钥:
设备上插入UKEY,确保只有一个UKEY。
通过yaspwd命令指定用户角色,初始化UKEY,导出对应UKEY公钥。
用户角色只能为DBA、SECURITY_ADMIN或AUDIT_ADMIN中,不能选错。
DBA角色:
$ yaspwd ukey_role=DBA
安全员角色:
$ yaspwd ukey_role=SECURITY_ADMIN
审计员角色:
$ yaspwd ukey_role=AUDIT_ADMIN
如果设备没有初始化,则需要按照提示数据设备认证码、admin密码、用户密码进行初始化,如果设备已经初始化,则需要输入用户密码进行UKEY认证。
如果设备已经存在密钥对,则按照提示可以重新生成新的密钥对或不需要重新生成密钥对。
按照提示会将公钥文件导出到当前目录下,导出成功。