数据库的每个用户都有一个在连接数据库时输入的名称(即用户 ID),并且用户至少属于一个组。用户和组也拥有赋予它们的特权和权限,从而使它们在数据库中维护信息安全性和保密性时能够执行各自的任务。
权限可赋予用户执行创建、修改、查询、使用或删除数据库对象(如表、视图、用户等等)任务的能力。特权可赋予用户在数据库级别执行任务的能力,例如备份数据库或执行诊断跟踪。SQL Anywhere 允许将权限和特权授予用户和组。
所有权限都是可继承的(从用户所属的组),但只有一部分特权是可继承的。
下表列出了可分配给用户的特权,以及这些特权是否通过组成员资格继承:
特权 | 是否通过组成员资格继承 | 详细信息 |
---|---|---|
BACKUP | 否 | 请参见BACKUP 特权。 |
DBA | 否 | 请参见DBA 特权。 |
PROFILE | 是 | 请参见PROFILE 特权。 |
READCLIENTFILE | 是 | 请参见READCLIENTFILE 特权。 |
READFILE | 是 | 请参见READFILE 特权。 |
REMOTE DBA | ||
RESOURCE | 否 | 请参见RESOURCE 特权。 |
VALIDATE | 否 | 请参见VALIDATE 特权。 |
WRITECLIENTFILE | 是 | 请参见WRITECLIENTFILE 特权。 |
下表列出了可分配给用户的权限,以及这些权限是否通过组成员资格继承:
权限 | 是否通过组成员资格继承 | 详细信息 | |
---|---|---|---|
ALL | 是 | 允许用户执行与数据库对象相关联的所有任务(相当于授予 ALTER、DELETE、INSERT、REFERENCES、SELECT 和 UPDATE 权限) | 请参见GRANT 语句。 |
ALTER | 是 | 允许用户修改数据库对象 | 请参见通过组成员资格继承的权限。 |
CONNECT | 否 | 允许用户连接到数据库 | 请参见创建新用户。 |
CONSOLIDATE | 否 | 在 SQL Remote 中标识统一数据库 | 请参见CONSOLIDATE 权限。 |
DELETE | 是 | 允许用户删除数据库对象 | 请参见GRANT 语句。 |
INSERT | 是 | 允许用户向数据库对象插入数据 | 请参见GRANT 语句。 |
INTEGRATED LOGIN | 否 | 允许用户使用集成登录连接到数据库 | 请参见使用集成登录。 |
KERBEROS LOGIN | 否 | 允许用户使用 Kerberos 登录连接到数据库 | 请参见Kerberos 验证。 |
PUBLISH | 否 | 在 SQL Remote 中标识数据库的发布者 | 请参见PUBLISH 权限。 |
REFERENCES | 是 | 允许用户在表上创建索引,并创建引用该表的外键 | 请参见GRANT 语句。 |
REMOTE | 否 | 在 SQL Remote 和 MobiLink 中标识远程数据库 | 请参见GRANT REMOTE DBA 语句 [MobiLink] [SQL Remote]。 |
SELECT | 是 | 允许用户查询数据库对象 | 请参见GRANT 语句。 |
UPDATE | 是 | 允许用户更新数据库对象 | 请参见GRANT 语句。 |
另请参见: GRANT 语句.
SQL Anywhere 不支持负权限。这意味着无法撤消非显式授予的权限。
例如,假设用户 bob 是 sales 组的一个成员。如果某个用户向 sales 组授予对表 T 进行 DELETE 的权限,bob 就可以从 T 中删除行。如果您不想让 bob 从 T 中删除行,只是执行 REVOKE DELETE ON T 并不能撤消 bob 的 DELETE 权限,因为从未直接向 bob 授予过 DELETE ON T 权限。在此情况下,必须撤消 bob 在 sales 组中的成员资格。
请参见:
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |