分类: Sybase
2008-04-11 11:21:47
来源:赛迪网 作者:Sybase |
通过指派用户 ID 和口令,数据库管理员可以控制哪些人拥有访问数据库的权限。通过向每个用户 ID 授予权限,数据库管理员可以控制每个用户在连接时可以执行的任务。本篇文章将介绍可用于控制数据库访问的功能。
基于用户 ID 的权限模式
在登录到数据库上时,您对符合以下任何 条件的所有数据库对象拥有
访问权限:
•您所创建的对象。
•您已接收到其显式访问权限的对象。
•您所属的组已接收到其显式访问权限的对象。
用户不能访问任何不符合这些条件的数据库。简而言之,用户只能访问他们拥有的对象或是已显式地接收了其访问权限的对象。
使用集成登录
集成登录允许用户使用一个登录名和口令登录到 Windows NT/2000/XP操作系统及数据库上。外部登录名与数据库用户 ID 相关联。在尝试使用集成登录时,您可以通过给出登录名及口令来登录到操作系统上。然后操作系统会将您的身份告知服务器,服务器以相关联的数据库用户ID 的身份让您登录到数据库。不需要您输入额外的登录名或口令。
集成登录存在一些需要考虑的安全问题。例如,让用户配置文件 Guest处于启用状态并且不设置任何口令,可以允许用户对该服务器运行的数据库进行不受限制的访问。也就是说,任何用户都可使用任意登录 ID和任意口令登录到此服务器,因为缺省情况下他们可以登录到 Guest 用户配置文件。
提高口令安全性
口令是所有数据库安全系统中很重要的一部分。为了安全,口令必须不容易被猜到,并且必须难以在用户的硬盘或其它位置得到。
规定最低口令长度 缺省情况下,对口令的长度没有任何限制。为了更加安全,可以对所有
新口令规定最小长度要求。可通过将 MIN_PASSWORD_LENGTH 数据
库选项设置为一个大于零的值来实现这一点。下列语句强制口令至少为8 字节长。
SET OPTION PUBLIC.MIN_PASSWORD_LENGTH = 8
不要在 ODBC 数据源中包含口令 口令是用于访问数据库的密钥。在注重安全的环境中,口令不应被未经授权的人很容易地得到。
在创建 ODBC 数据源或 Sybase Central 连接配置文件时,可选择包括一个口令。对于更高的安全性要求,应避免包括口令。
对包含口令的命令文件进行加密 当您创建配置文件时,可以选择包括口令信息。要保护您的口令,可使用文件隐藏 [dbfhide] 实用程序用简单的加密方法隐藏配置文件的内容。
控制用户可以执行的任务
用户只能访问那些已授予他们访问权限的对象。
您可以使用 GRANT 语句将对某个对象的权限授予其他用户。您还可以向用户授予权限,以允许该用户将某个对象的访问权限传递给其他用。
GRANT 语句还可赋予用户更多常规权限。向用户授予 CONNECT 权限可允许他们连接到数据库并更改他们的口令。授予 RESOURCE 权限可允许用户创建表、视图、过程等。向用户授予 DBA 权限后,该用户就可以任意查看数据库并执行任意操作。 DBA 还可以使用 GRANT 语句创建组并对组进行管理。
REVOKE 与 GRANT 语句刚好相反 - 所有使用 GRANT 语句显式授予的权限,都能使用 REVOKE 语句撤消。撤消用户的 CONNECT 会将该用户及其拥有的所有对象从数据库中删除。
负权限
Adaptive Server Anywhere 不支持负权限。这意味着不能撤消非显式授予的权限。
例如,假设用户 bob 是名为 sales 的组中的一个成员。如果一个用户向sales 组授予对表 T 进行 DELETE 的权限, bob 就可以从 T 中删除行。
如果您不想让 bob 从 T 中删除行,则不能简单地执行 REVOKE bob 对 T的 DELETE 权限,因为从未直接向 bob 授予过对 T 的 DELETE 权限。在此情况下,必须撤消 bob 在 sales 组中的成员资格。
设计数据库对象的安全性
视图和存储过程提供了可供选择的方法,以调整用户可以访问的数据和可以执行的任务。 |