系统安全策略¶
- 数据库用户管理
为连接到神通数据库服务器必须提供有效的用户名和口令。数据库用户管理是数据库安全管理的核心内容之一,神通数据库提供了一套有效管理数据库用户的机制。在系统中只有系统管理员可以创建/修改/删除数据库用户。
系统管理员通过CREATE USER/ALTER USER/DROP USER命令实现用户管理。神通数据库用户包括2类:操作系统用户/组和普通数据库用户。在管理上这2类用户是没有任何区别的。对于每个用户,可以指定:
用户名和口令
是否具有系统管理员权限
账号有效期
账号锁定策略
用户会话级配置信息
- 用户身份认证
用户在进行连接请求的过程中,需要对其提供的登录ID的有效性进行验证,以控制该客户端应用程序对数据库内各对象资源的访问权限,这一过程称为身份验证。
认证是数据库服务器建立客户端应用的标识。服务器端根据参数设定以不同的方式进行客户端认证以判断是否允许此客户端应用(或者运行这个客户端应用的用户)以它所要求的用户名进行连接。
神通数据库提供多种不同的客户端认证方式,包括操作系统认证和MD5密码认证。所使用的方法可以通过基于 (客户端)主机、数据库和用户的方式进行选择。
- 操作系统认证
当用户通过Windows或Linux用户帐户进行连接时,该用户的操作系统身份信息将传送到数据库服务端,信息包括:域名、用户名、域用户组名。数据库服务器获得该信息,并通过检测系统表中是否存在该用户账号或者所属的组账号信息来进行用户身份的验证。
- MD5密码验证
当用户用指定的登录名和密码进行连接时,神通数据库通过检查是否已经设置了神通数据库登录帐户,以及指定的密码是否和系统表中记录的密码匹配来进行身份认证。缺省时,如果没有明确地设置口令,存储的口令是 NULL 并且该用户的口令认证总会失败。
使用MD5密码验证时,神通数据库执行一系列的安全机制,包括:
帐户锁定:进行密码认证时,神通数据库支持帐户锁定的安全机制,这通过设置配置参数CHECK_LOGIN_COUNT(是否使用帐户锁定安全机制)和MAX_LOGIN_COUNT(允许的最大失败登录次数)来实现。如果CHECK_LOGIN_COUNT设置为true且用户登录次数超过MAX_LOGIN_COUNT,则禁止用户的登录,该用户需要与数据库管理员联系。用户登录失败次数记录在系统表中,如果用户在MAX_LOGIN_COUNT范围内成功登录,则重置用户登录失败记录。
密码检查:将用户输入密码与系统表中用户密码进行比较,如不相等,则禁止连接,用户需要重新尝试连接操作。
用户有效期检查:用户有效期即用户名使用的有效期限。用户的有效性可以通过查询命令CREATE USER 和ALTER USER设置VALID UNTIL可选参数来管理。缺省时,如果没有明确地设置有效期,有效期为NULL并且该用户永远有效。用户密码验证成功后,进行用户有效性检查,若有效期落后于当前时间,则禁止用户登录。用户需要与数据库管理员联系。
密码有效期检查:密码有效期不同于用户的有效期,它是用户使用一定密码进行连接的有效期限。密码的有效期是通过在系统表中登记用户密码修改历史记录来进行管理。当用户密码验证成功并且通过用户名有效性检查后,查询用户密码最新修改时间从而获得用户密码使用时间,如果其值在配置参数PASSWD_VALID_DAYS(密码有效天数)设定值以内,则通过密码的有效期检查,用户将成功连接到数据库服务器。否则,禁止用户登录,用户需要与数据库管理员联系。
- 操作系统安全
由于神通数据库运行在操作系统环境下,所以其安全不可避免的要依赖于操作系统的安全。为保证数据库的安全,必须保证:运行神通数据库服务器的操作系统账号必须对神通数据库相关文件有完全访问权限。其他用户都不能对神通数据库运行文件,配置文件,数据文件,日志文件等具有读/写权限。
同时,为了保障操作系统本身的安全,建议为运行神通数据库服务器建立专门的操作系统账号,而且该账号不能具有操作系统管理员权限。