授予组成员资格、创建新用户 ID、为指定的用户授予或更改权限,以及创建或更改口令。
GRANT authority, ... TO userid, ...
authority : BACKUP | DBA | PROFILE | READCLIENTFILE | READFILE | [ RESOURCE | ALL ] | VALIDATE | WRITECLIENTFILE
GRANT { GROUP | MEMBERSHIP IN GROUP userid, ... } TO userid, ...
GRANT permission, ... ON [ owner.]object-name TO userid, ... [ WITH GRANT OPTION ] [ FROM userid ]
permission : ALL [ PRIVILEGES ] | ALTER | DELETE | INSERT | REFERENCES [ ( column-name, ... ) ] | SELECT [ ( column-name, ... ) ] | UPDATE [ ( column-name, ... ) ]
GRANT CONNECT TO userid, ... [ AT starting-id ] [ IDENTIFIED BY password, ... ]
AT starting-id 子句 此子句不用于通用用途。此子句指定用于列表中第一个用户 ID 的内部数字值。
AT starting-id 子句由卸载使用程序使用。
GRANT authority 子句 此子句用于授予以下列出的特权之一:
BACKUP 特权子句 此特权允许用户备份数据库。请参见BACKUP 特权。
DBA 特权子句 此特权允许用户执行所有任务。此权限通常是为组织中负责管理数据库的人员保留的。请参见DBA 特权。
PROFILE 特权子句 此特权允许用户执行分析和诊断操作。请参见PROFILE 特权。
READCLIENTFILE 特权子句 此特权允许用户从客户端计算机上的文件中进行读取(例如在装载数据时)。请参见READCLIENTFILE 特权。
READFILE 特权子句 此特权允许用户使用 OPENSTRING 子句对文件执行 SELECT 语句。请参见READFILE 特权。
RESOURCE 或 ALL 特权子句 此特权允许用户创建表和视图。ALL 是与 Adaptive Server Enterprise 兼容的 RESOURCE 的同义词。请参见RESOURCE 特权。
VALIDATE 特权子句 此特权允许用户执行由不同 VALIDATE 语句支持的校验操作,例如校验数据库、校验表和索引,以及校验校验和。它还允许用户使用 Sybase Central 中的校验实用程序 (dbvalid) 和 [校验数据库向导]。请参见VALIDATE 特权。
WRITECLIENTFILE 特权子句 此特权允许用户对客户端计算机上的文件进行写入(例如在卸载数据时)。请参见WRITECLIENTFILE 特权。
GROUP 子句 此权限允许用户拥有成员。请参见管理组。
MEMBERSHIP IN GROUP 子句 此权限授予用户某一个组的成员资格。用户将继承在组级别设置的可继承权限和特权。请参见管理组。
GRANT permission 子句 GRANT permission 子句允许授予对单个表或视图的权限。表权限可分别指定,也可以使用 ALL 同时授予所有权限。以下是可以授予的权限列表:
FROM 子句 如果指定了 FROM userid,则该 userid 将作为一个授权者用户 ID 被记录到系统表中。此子句是供卸载实用程序 (dbunload) 使用的。不要直接使用或修改此选项。
建议使用 CREATE USER 语句创建用户。请参见CREATE USER 语句。
GRANT CONNECT TO userid IDENTIFIED BY ""; |
若要创建没有口令的用户,请使用:
GRANT CONNECT TO userid; |
没有口令的用户不能连接到数据库。如果要创建组,但不希望任何人使用组用户 ID 连接到数据库,则这很有用。用户 ID 必须是有效的标识符。
用户 ID 和口令不能:
口令必须是有效的标识符,或者是用单引号引上的字符串(最大 255 字节)。有关指定有效口令的信息,请参见设置口令。
verify_password_function 选项可用于指定函数,以实现口令规则(例如,口令至少必须包含一位)。如果使用口令验证函数,则不能在 GRANT CONNECT 语句中指定多个用户 ID 和口令。请参见verify_password_function 选项。
CREATE ON 子句 允许用户在指定的 dbspace 中创建数据库对象。CREATE 权限可以通过组成员资格继承。在用户可以创建对象前,他们必须也有 RESOURCE 权限。请参见RESOURCE 特权。
GRANT USAGE ON SEQUENCE 子句 用户可以使用该语句计算序列中当前值或下一个值。您必须具有 DBA 特权或者是运行该语句的序列创建者。如果该序列是某个表中 DEFAULT 子句的一部分,任何向该表中插入行的用户必须具有该序列的权限。请参见使用序列来生成唯一值。
GRANT 语句用于为个别用户 ID 和组授予数据库权限和特权。它也可用于创建用户和组。
如果指定了 WITH GRANT OPTION,则指定的用户 ID 也被授权向其它用户 ID GRANT(授予)同样的权限。如果将 WITH GRANT OPTION 授予组,则组的成员不会继承 WITH GRANT OPTION。
可以对禁用的对象授予权限。对禁用对象的权限存储在数据库中,在对象被启用时生效。
GRANT 语句的语法 4 用于授予执行过程的权限。
GRANT 语句的语法 5 在一个或多个 Windows 用户或组配置文件与现有数据库用户 ID 之间创建显式集成登录映射,使成功登录到其本地计算机的用户不必提供用户 ID 或口令就可以连接到数据库。user-profile-name 可以采用 domain\user-name 的形式。集成登录映射到的数据库用户 ID 必须具有口令。请参见使用 Windows 集成登录。
GRANT 语句的语法 6 创建从一个或多个 Kerberos 主体到现有数据库用户 ID 的 Kerberos 验证登录映射。这使成功登录到 Kerberos 的用户(具有一个有效 Kerberos 票据授予票据的用户)不必提供用户 ID 或口令,就可以连接到数据库。Kerberos 登录映射到的数据库用户 ID 必须具有口令。client-Kerberos-principal 必须采用 user/instance@REALM 的格式,其中 /instance 是可选的。必须指定包括域在内的完整主体,只在实例或域内有差异的主体将被视为不同主体。
主体区分大小写,因此必须指定正确的大小写。不支持映射只有大小写存在差异的多个主体(例如,无法同时映射 jjordan@MYREALM.COM 和 JJordan@MYREALM.COM)。
如果没有为 Kerberos 主体创建显式映射,但存在 Guest 数据库用户 ID 且具有口令,则 Kerberos 主体使用 Guest 数据库用户 ID (与集成登录的 Guest 数据库用户 ID 相同)进行连接。
有关 Kerberos 验证的详细信息,请参见Kerberos 验证。
语法 3 如果指定了 FROM 子句,则必须具有 DBA 特权。否则,必须拥有表,或必须已经用 WITH GRANT OPTION 授予了对表的权限。
语法 4 必须拥有过程,或必须具有 DBA 特权。
语法 5 和 6 必须具有 DBA 特权。
语法 7 必须使用 GRANT CONNECT 更改自己的口令,或必须具有 DBA 特权。
自动提交。
SQL/2008 语法 3 是 SQL/2008 标准的核心功能。对于语法 3,FROM 子句是服务商扩充,如同 ALTER 特权。在 SQL/2008 标准中,与可选 ALL PRIVILEGES 语法不同,PRIVILEGES 关键字是强制性的。
语法 4 也是 SQL/2008 标准的核心功能,用于对存储过程授予 EXECUTE 权限。
语法 9 是可选 SQL/2008 语言功能 T176 的一部分。
所有其它语法是服务商扩充。
创建新的数据库用户。
GRANT CONNECT TO SQLTester IDENTIFIED BY welcome |
向用户 Laurel 授予对 Employees 表的权限。
GRANT SELECT, UPDATE ( Street ) ON Employees TO Laurel; |
可以在一个语句中授予多个权限。各权限用逗号分隔。
允许用户 Hardy 执行 Calculate_Report 过程。
GRANT EXECUTE ON Calculate_Report TO Hardy; |
![]() |
使用DocCommentXchange 讨论此页。
|
版权 © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |