分类: DB2/Informix
2008-05-31 16:32:40
配置安全性
LBAC 通过为表对象附加安全标签实现了对表对象的访问控制。试图访问对象的用户必须具有授权给自己的安全标签。如果标签匹配的话,则允许访问;否则拒绝访问。
有三种类型的安全标签:
安全标签是由一个或多个安全标签组件构成。您可以使用三种安全标签组件构建自己的安全标签:
可以使用安全策略定义安全标签组件,由这些安全标签组件组成具体的安全标签。需要使用 DBSECADM 处理 LBAC 对象。
可插入的身份验证模块(Pluggable Authentication Module,PAM)是一个经过良好定义的框架,可以支持最初由 Sun Microsystems 开发的各种身份验证模块。
PAM 使系统管理员能够针对不同的应用程序实现不同的身份验证机制。例如,诸如 UNIX 登录程序之类的系统与访问数据库敏感信息的应用程序相比,其需求不尽相同。PAM 可以在一个机器中实现很多种这类场景,这是因为身份验证服务是在应用程序级别上实现的。
除了能够使应用程序选择所需的身份验证机制,PAM 还可以实现模块堆栈。模块被逐一堆起来,因此使应用程序在授权访问之前能够使用多种方式进行身份验证。PAM 提供了一组 API 来支持身份验证、账户管理、会话管理和密码管理。
系统管理员可以启用或禁用 PAM 功能。默认情况下,数据库服务器使用传统 Informix 身份验证机制(该机制基于 BSD rhosts 机制),从而避免对用户强加较大更改。
要结合使用 PAM 和 Dynamic Server:
可插入的身份验证模式(PAM)在 Solaris、Linux、HP-UX 和 AIX® 上的 32 位和 64 位模式都受支持。
Windows 中的 LDAP 身份验证的创建和配置与 UNIX 和 Linux 使用的可插入的身份验证模块(PAM)类似。如果希望使用 LDAP 服务器对您的系统用户进行身份验证,可以使用 LDAP 身份验证支持模块。该模块包含源代码,您可以对其进行修改来实现特定的 LDAP 身份验证支持模块。
身份验证模块是一个 DLL,通常位于 %INFORMIXDIR%\dbssodir\lib\security 目录。%INFORMIXDIR%\dbssodir\pam.conf 文件列出了该模块的参数。功能完整的 LDAP 身份验证模块的源代码和所需的配置文件示例包含在 %INFORMIXDIR%\demo\authentication 目录中。
LDAP 身份验证模块提供了单模块(single-module)身份验证。该模块并不支持诸如模块堆栈等特性。系统管理员可以启用或禁用身份验证。
您可以在连接或访问时更改数据库服务器会话的属性,而不需要更改会话运行的应用程序。这种特性在某些情况下非常有用,例如如果您无法修改应用程序的源代码来设置环境选项或环境变量,或者包括会话相关的 SQL 语句(例如由于 SQL 语句包含供应商获得的代码)。
要更改会话的属性,需要为不同数据库设计自定义的 sysdbopen( )
和 sysdbclose( )
程序,以支持特定用户或 PUBLIC 组的应用程序。sysdbopen( )
和 sysdbclose( )
应用程序可以包含一些 SET
、SET ENVIRONMENT
、SQL
或 SPL
语句,当数据库打开或关闭时,数据库服务器将为用户或 PUBLIC 组执行这些语句。
例如,您可以为 user1 定义包含 SET PDQPRIORITY
、SET ISOLATION LEVEL
、SET LOCK MODE
、SET ROLE
或 SET EXPLAIN ON
语句的程序,当 user1 使用 DATABASE
或 CONNECT TO
语句打开数据库时,将执行上述语句。
会话环境变量 PDQPRIORITY
和 OPTCOMPIND
的任何设置是由 sysdbopen( )
程序内的 SET ENVIRONMENT
语句指定,该程序将在会话期间一直保持运行状态。SET PDQPRIORITY
和 SET ENVIRONMENT OPTCOMPIND
语句并不持久存留在常规程序中,当包含在 sysdbopen( )
程序中时会一直保存在该程序中。
如果用户断开程序与数据库的连接(或者当 PUBLIC.sysdbclose( )
运行时,存在 sysdbclose( )
并且不属于当前用户),将运行 user.sysdbclose( )
程序。