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

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - 数据库管理 » 配置数据库 » 管理用户 ID、特权和权限

 

管理组

可将组视为拥有特殊权限(如可以具有成员)的用户 ID。授予和撤消组权限和特权的方式与对用户的处理方式完全相同。

您可以构建若干个组的层次,其中每个组都是另一个组的成员。无论成员是用户还是组,其都会继承父组的特权和权限。每个用户 ID 可以属于多个组;用户与组的关系是多对多的关系。

正如同用户一样,您可以在表、视图或过程中授予或撤消组权限。当您如此操作时,组的所有成员均会继承更改。

您可以创建没有口令的组,这样可防止用户使用组用户 ID 连接到数据库。请参见没有口令的组

要管理组的特权和权限,请执行与管理用户的权限和特权相同的过程。请参见管理用户权限和特权概述

要管理组的远程权限,请参见授予和撤消远程权限

组继承的特殊注意事项

除了授予权限(GRANT ...WITH GRANT OPTION 语句)外,用户和组均继承其所在组的全部权限。

组成员可以只继承其所属组的以下特权集。

简要示例

在以下示例中创建了两个组:group1 和 group2。还创建了一个用户 bobsmith 并赋予其在两个组中的成员资格。此外,又创建了一个表 table1,并赋予 group2 对该新表的 SELECT 和 INSERT 权限。

GRANT CONNECT, GROUP TO group1;
GRANT CONNECT, GROUP TO group2;
GRANT CONNECT TO bobsmith IDENTIFIED BY sql;
GRANT MEMBERSHIP IN GROUP group1 TO bobsmith;
GRANT MEMBERSHIP IN GROUP group2 TO bobsmith;

CREATE TABLE DBA.table1( column1 INT, modified_by VARCHAR(128) DEFAULT USER );
GRANT SELECT, INSERT ON DBA.table1 TO group2;

因为 bobsmith 是 group2 的成员,所以他继承了对 table1 的选择和插入权限,可插入如下所示的值:

CONNECT USER bobsmith IDENTIFIED BY sql;
INSERT INTO DBA.table1(column1) VALUES(1);

创建组
将组成员资格授予现有的用户或组
撤消组成员资格
组的权限和特权
引用组拥有的表
没有口令的组
特殊组
从数据库删除组