协同办公系统的维护经常需要操作Domino数据库和进行一些程序调试, 目前各项目维护人员使用的用户都是admin超级管理员,这难免会操作失误删除数据库或文档,如果备份没有做好,将导致非常严重的后果。虽然一些单位准备在网络上对维护人员的操作进行限制,封掉链接服务器的端口,任何的修改更新都需要走工作票,但这对维护工作带来极大的不方便,影响工作效率。
本文档将从技术上避免了维护人员的错误操作误删数据库和文档,且不影响运维人员日常的工作。
1日常运维分析
作为日常的运维工作,我们究竟需要一个什么样的权限?必须要admin超级管理员吗?分析一下日常运维工作哪些需要连接服务器。
1) 更新、升级程序
2) 对问题的跟踪调试
3) 通过控制台查看服务器运行状态
4) 对一些异常文档的处理
2 Domino权限控制分析
2.1 Domino数据库存取控制列表权限说明
Domnio提供了多层次多级别的权限控制机制,其他的权限在此不多描述,主要看数据库存取控制列表的权限分配。
存取级别 | 缺省权限 | 可选权限 |
管理者 | • 创建文档 • 创建个人代理 • 创建个人文件夹/视图 • 创建共享文件夹/视图 • 创建 LotusScript/Java 代理 • 读取公用文档 • 写入公用文档 | • 删除文档 • 复制或拷贝文档 |
设计者 | • 创建文档 • 创建个人代理 • 创建个人文件夹/视图 • 创建共享文件夹/视图 • 读取公用文档 • 写入公用文档 | • 删除文档 • 创建 LotusScript/Java 代理 • 复制或拷贝文档 |
编辑者 | • 创建文档 • 读取公用文档 • 写入公用文档 | • 删除文档 • 创建个人代理 • 创建个人文件夹/视图 • 创建共享文件夹/视图 • 创建 LotusScript/Java 代理 • 复制或拷贝文档 |
作者 | • 读取公用文档 | • 创建文档 • 删除文档 • 创建个人代理 • 创建个人文件夹/视图 • 创建 LotusScript/Java 代理 • 写入公用文档 • 复制或拷贝文档 |
读者 | • 读取公用文档 | • 创建个人代理 • 创建个人文件夹/视图 • 创建 LotusScript/Java 代理 • 写入公用文档 • 复制或拷贝文档 |
存放者 | • 创建文档 | • 读取公用文档 • 写入公用文档 • 复制或拷贝文档(仅当授予了“读取公用文档”时) |
不能存取者 | 无 | • 读取公用文档 • 写入公用文档 • 复制或拷贝文档(仅当授予了“读取公用文档”时) |
2.2 服务器配置文档中管理员权限说明
在服务器的配置文档中“安全性”标签下,有
具有完全权限的管理员 | • 对 Web Administrator 数据库 (WEBADMIN.NSF) 的“管理者”访问权限 • 创建、更新和删除文件夹和数据库链接 • 创建、更新和删除目录链接 ACL • 压缩和删除数据库 • 创建、更新和删除全文索引 • 创建数据库、复本和主模板 • 获取和设置某些数据库选项(如运行/停止服务、数据库限额等等) • 使用邮件跟踪与跟踪主题 • 使用控制台远程管理 UNIX 服务器 • 发布任何远程控制台命令 |
管理员 | • 创建、更新和删除文件夹和数据库链接 • 创建、更新和删除目录链接 ACL • 压缩和删除数据库 • 创建、更新和删除全文索引 • 创建数据库、复本和主模板 • 获取并设置某些数据库选项(如运行/停止服务、数据库限额等等) |
数据库管理员 | • 创建、更新和删除文件夹和数据库链接 • 创建、更新和删除目录链接 ACL • 压缩和删除数据库 • 创建、更新和删除全文索引 • 创建数据库、复本和主模板 |
完全远程控制台管理员 | 输入可使用远程控制台向此服务器发布命令的管理员的名称。 |
辅助管理员 | 输入只能使用远程控制台发布系统状态信息提供命令(如 SHOW TASKS 和 SHOW SERVER)的管理员的名称 |
系统管理员 | 输入允许发布完全范围的操作系统命令至服务器的管理员的名称。命令的类型和范围取决于服务器操作系统。例如,如果 Domino 服务器是一个 NT 服务器,那么这些管理员可以在系统命令级提示符下发布 NT 命令。类似地,UNIX 服务器的管理员可以发布 UNIX 命令。 |
受限制的系统管理员 | 输入只能发布在“受限制的系统管理员”域(见下)中列出的操作系统命令的管理员的名称。 |
受限制的系统命令 | 输入受限制的系统管理员可以发布的操作系统命令的子集。这些命令的类型和范围取决于服务器操作系统和受限制的系统管理员需要执行的任务。 |
3 具体配置
综合上述权限配置分析,我们可以配置出一个既可以修改、更新设计,但又不能删除文档和数据库,且不能发出影响服务器运行命令的一个用户。这样既满足了维护的需要,也避免了人为的操作失误删除数据库和文档。具体操作步骤如下:
1) 注册一个用户,将此用户添加到所有应用数据库的存取控制列表中,权限设置为个人/设计者,不要选择“删除文档”选项。如下图所示.
2)在管理端服务器文档的安全性标签中,将该用户加到辅助管理员中。在辅助管理员中的用户可以查看控制台,但只能发出查看信息的命令,如:show task。不能发送影响服务器操作的命令。
注:在服务器文档的“安全性”附签上的“具有完全权限的管理员”、“管理员”和“数据库管理员”域中列出的管理员可以删除该服务器上的任何数据库,即使他们并未在数据库 ACL 中列为管理者。
3) 当我们用该用户修改设计后,会看到上次修改者是当前用户,不是admin,这其实对代理的运行没有影响。
总结
任何技术上的手段很难保证做到绝对的安全,只有每个人把“安全”时刻放在心中,才能做到安全第一。