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

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

 

数据库对象名和前缀

每个数据库对象的名称都是一个标识符。

有关有效标识符规则的信息,请参见标识符

在本手册的所有查询和示例 SQL 语句中,提及示例数据库中的数据库对象时,通常采用的是它们的简单名称。例如:

SELECT *
FROM Employees;

表、过程和视图都有所有者。DBA 用户 ID 拥有示例数据库中的表。在某些情况下,必须使用所有者用户 ID 作为对象名的前缀,如以下语句所示。

SELECT *
FROM DBA.Employees;

Employees 表引用被称为限定表引用。在其它情况下,给出对象名即已足够。本节介绍了何时需要或不需要使用所有者前缀来标识表、视图和过程。

当引用数据库对象时,除以下情况外需要使用前缀:

  • 您是数据库对象的所有者。

  • 您是拥有数据库对象的组 ID 的成员。

 示例
注意

Joe 和 Sally 是 company 组的成员,但他们没有任何额外的权限。company 组没有被明确授予任何表权限。(company 用户 ID 拥有查看诸如 Salaries 之类的表的隐式权限,因为该 ID 创建了该表并具有 DBA 特权。)因此,Joe 和 Sally 在执行以下命令之一时仍会遇到错误:

SELECT *
FROM Salaries;
SELECT *
FROM company.Salaries;

在这两种情况下,Joe 和 Sally 都没有查看 Salaries 表的权限。