Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 (中文) » SQL Anywhere 服务器 - 数据库管理 » 用户和数据库安全 » 数据安全

 

常规安全提示

可以采取许多措施来提高数据的安全性。

  • 谨慎选择口令   请勿部署使用缺省用户 ID 和口令的数据库。请参见安全注意事项:口令

  • 限制使用超级用户   避免创建和授予拥有所有特权、角色和管理权限的角色(即避免超级用户),而是创建对特权与权限进行逻辑分组的角色,然后再合理地对这些角色进行授予。如果已经创建超级用户,请仅在绝对必要时才考虑使用,并将超级用户的口令存储在安全位置(如保险箱),以便在需要时获取。请参见超级用户

    请考虑为数据库管理员提供两个用户 ID:一个具有全部特权,一个具有有限的特权,这样管理员便可以仅在必要时才连接到具有全部特权的那个用户 ID。

  • 使用受保护的数据库功能   数据库服务器 -sf 选项用于为数据库服务器上运行的所有数据库启用和禁用功能。可以禁用的功能包括使用外部存储过程、Java、远程数据访问及更改请求日志设置的功能。 请参见-sf 数据库服务器选项创建安全功能密钥

  • 删除外部系统函数   以下外部函数可能会带来安全风险:

    电子邮件系统过程允许用户指示数据库服务器发送由用户撰写的电子邮件。恶意用户可能会使用电子邮件过程或命令 shell 过程,以操作系统所授予权限之外的其它权限执行操作系统任务。在注重安全的环境中,应该删除这些函数。

    有关删除过程的信息,请参见DROP PROCEDURE 语句

  • 保护数据库文件   保护数据库文件、日志文件和 dbspace 文件免受未经授权的访问。不要将它们存储在共享目录或卷中。

  • 保护数据库软件   保护 SQL Anywhere 软件免受未经授权的访问。只授予用户访问其所需的应用程序、DLL 及其它资源的权限。

  • 将数据库服务器作为服务或守护程序运行   为防止未经授权的用户关闭数据库或获得对数据库或日志文件的访问权限,请将数据库服务器作为 Windows 服务运行。在 Unix 上,将服务器作为守护程序运行可起到相似作用。请参见如何将数据库服务器作为服务或守护程序运行

  • 将 SATMP 环境变量设置为唯一目录 (Unix)   要在 Unix 平台上保护数据库服务器的安全,请将 SATMP 设置为某个唯一目录,并对该目录实施读、写及执行操作保护,防止所有其他用户对其执行这些操作。这样做会强制所有其它连接使用 TCP/IP,其安全性要高于共享内存连接。

    在客户端与服务器之间发送任何实际数据前,二者之间使用的共享内存缓冲区将从目录树中删除。其它进程无法看到任何通信数据,这是由于共享内存缓冲区/文件被隐藏,因而进程无法获取其句柄。请参见SATMP 环境变量

  • 对数据库进行高度加密   如果对数据库进行高度加密,则在不使用密钥的情况下数据库将完全无法访问。使用任何其它手段都无法打开数据库或查看数据库或事务日志文件。请参见-ep 数据库服务器选项-ek 数据库选项

  • 调整 -xs 服务器选项 HTTP 和 MaxRequestSize 协议选项   调整 -xs 服务器选项 HTTP{TO、KTO 和 MaxRequestSize 协议选项}。请参见-xs 数据库服务器选项

  • 设置 request_timeout 以确保没有请求能够无限期消耗服务器资源   设置 request_timeout 数据库选项,以确保没有一个请求能够无限期消耗服务器资源。请参见request_timeout 选项

  • 保护磁盘沙箱功能的安全   如果开启磁盘沙箱,则数据库文件操作将局限于主数据库文件所在的目录及该目录的所有子目录。 请参阅:

  • 启动和停止数据库   使用个人数据库服务器 (dbeng16) 时,缺省情况下任何用户都可以在运行着的服务器上启动其它数据库。

    缺省情况下,网络数据库服务器 (dbsrv16) 要求用户拥有 SERVER OPERATOR 系统特权,才能在运行着的数据库服务器上启动数据库。可以通过 -gd 数据库选项将对此选项的访问限定为对已连接到的数据库拥有某一级别特权的用户。

  • 创建与删除数据库   运行个人数据库服务器 (dbeng16) 时,缺省情况下任何用户都可以使用 CREATE DATABASE 语句来创建数据库文件。

    缺省情况下,网络数据库服务器 (dbsrv16) 要求用户拥有 SERVER OPERATOR 系统特权才能创建数据库。可以通过 -gu 选项将对此选项的访问限定为对所连接到的数据库拥有某一级别特权的用户。

  • 停止服务器   dbstop 实用程序可以停止数据库服务器。可以在批处理文件中,或者在无法以交互方式停止服务器(通过单击数据库服务器消息窗口上的 [关闭])的其它情况下使用它。

    在个人数据库服务器 (dbeng16) 上,缺省情况下任何用户都可以运行 dbstop 来关闭服务器。

    在网络数据库服务器 (dbsrv16) 上,缺省设置要求用户拥有 SERVER OPERATOR 系统特权才能停止数据库服务器。可以通过 -gk 选项将对此选项的访问限定为对数据库拥有某一级别特权的用户。

  • 装载和卸载数据   LOAD TABLE、UNLOAD TABLE 和 UNLOAD 语句都会访问数据库服务器计算机上的文件系统。可以通过 -gl 数据库服务器选项控制执行数据装载和卸载所需的数据库特权。非 Unix 操作系统中个人数据库服务器 (dbeng16) 的缺省设置为 all。网络数据库服务器和 Unix 个人服务器的缺省设置为 DBA。如果运行的是个人数据库服务器,您已经拥有了对文件系统的访问权,这不会成为安全问题。如果运行的是网络数据库服务器,未经授权的文件系统访问可能会成为安全问题。

  • 使用传送层安全 (TLS) 对客户端/服务器通信加密   为提高网络数据包的安全性,可以使用传送层安全来验证客户端应用程序与数据库服务器之间的通信。传送层安全使用 RSA 加密技术。

  • 禁用数据库功能   -sf 数据库服务器选项指定对数据库服务器上运行的数据库禁用的功能列表,这样客户端应用程序或数据库内定义的存储过程、触发器或事件就无法使用这些功能。如果启动的数据库不是自己的,而且该数据库可能包含有害操作(如病毒或特洛伊木马),就可以使用此选项。