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、特权和权限 » 管理用户权限和特权概述

 

授予针对表的权限

您可以对单个表指派一组权限,并向用户授予这些权限组合,以规定他们对表的访问权限。

您可以使用 Sybase Central 或 Interactive SQL 来设置权限。在 Interactive SQL 中,可以使用 GRANT 语句来授予以下针对表的权限:

  • ALTER 权限允许用户变更表的结构或在表中创建触发器。REFERENCES 权限允许用户在表中创建索引和创建外键。这些权限可授予修改数据库模式的特权,因此不会将这些权限指派给大多数用户。这些权限不适用于视图。

  • DELETE、INSERT 和 UPDATE 权限授予修改表中数据的特权。

  • SELECT 权限可授予在表中查看数据的特权,但不授予更改数据的权限。

  • ALL 权限可授予所有上述权限。

  • REFERENCES、SELECT 和 UPDATE 权限可以被限制到表或视图中的一组列。

♦  授予针对表或列的权限 (Sybase Central):
  1. 以具有 DBA 特权的用户身份连接到数据库。

  2. 单击 []。

  3. 右击某个表,然后选择 [属性]。

  4. 单击 [权限] 选项卡,然后配置该表的权限:

    • 单击 [授权]。

    • 双击某一用户或组。

    • 在权限表中,单击该用户或组旁边的字段以设置特定权限。

    • 选择某个用户然后单击 [更改] 来设置对列的特定权限。

    • 单击 [确定]。

    • 要撤消所有权限,请选择某个用户或组并单击 [撤消]。

  5. 单击 [应用]。

提示

也可以在 [用户属性] 或 [组属性] 窗口中指派权限。要向多个用户或组指派权限,请使用 [表属性] 窗口。要向多个表指派权限,请使用 [用户属性] 窗口。

♦  授予针对表或列的权限 (SQL):
  1. 以具有 DBA 特权的用户身份连接到数据库。

  2. 执行 GRANT 语句来指派权限。

    请参见GRANT 语句

示例 1

所有表权限都以非常相似的方式授予。您可为 M_Haneef 授予从名为 sample_table 的表中删除行的权限,方法如下:

  1. 以拥有 DBA 特权的用户身份或 sample_table 的所有者身份连接到数据库。

  2. 执行以下 SQL 语句:

    GRANT DELETE
    ON sample_table
    TO M_Haneef;
示例 2

您可以为 M_Haneef 授予仅在名为 sample_table 的表中更新 column_1 和 column_2 列的权限,方法如下:

  1. 以拥有 DBA 特权的用户身份或 sample_table 的所有者身份连接到数据库。

  2. 执行以下 SQL 语句:

    GRANT UPDATE ( column_1, column_2 )
    ON sample_table
    TO M_Haneef;

对表进行权限设置有其局限性,即表权限通常应用于表中的所有数据,虽然可以针对列的一个子集授予 REFERENCES、SELECT 和 UPDATE 权限。为了调整用户权限,您可以创建对表执行操作的过程,然后把执行该过程的权限授予用户。

另请参见