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 服务器 - SQL 的用法 » 创建数据库 » 使用数据库对象 » 使用实例化视图

 

加密和解密实例化视图

为了更加安全起见,可以将实例化视图加密。例如,如果实例化视图包含在基础表中已经加密的数据,最好也将实例化视图加密。在数据库中必须已启用表加密,实例化视图才能加密。加密实例化视图时使用在创建数据库时所指定的加密算法和密钥。要查看数据库中当前使用的加密设置(包括是否启用了表加密),请使用 DB_PROPERTY 函数查询 Encryption 数据库属性,如下所示:

SELECT DB_PROPERTY( 'Encryption' );

与表加密一样,实例化视图的加密也会影响性能,因为数据库服务器必须将从该视图中所检索的数据解密。

♦  加密实例化视图 (Sybase Central)
  1. 以视图所有者身份或以具有 DBA 权限的用户身份连接到数据库。

  2. 在左窗格中,双击 [视图]。

  3. 右击实例化视图,并选择 [属性]。

  4. 单击 [杂项] 选项卡。

  5. 选中 [实例化视图数据已加密] 复选框。

  6. 单击 [确定]。

♦  加密实例化视图 (SQL)
  1. 以具有 DBA 权限的用户身份,或以实例化视图所有者身份连接到数据库。

  2. 执行带有 ENCRYPTED 子句的 ALTER MATERIALIZED VIEW 语句。

示例

以下语句创建 EmployeeConfid443 实例化视图,并对其初始化,然后进行加密。数据库必须已配置为允许使用加密表,此语句才有效:

CREATE MATERIALIZED VIEW EmployeeConfid44 AS
   SELECT EmployeeID, Employees.DepartmentID, SocialSecurityNumber, Salary, ManagerID,
      Departments.DepartmentName, Departments.DepartmentHeadID
   FROM Employees, Departments
   WHERE Employees.DepartmentID=Departments.DepartmentID;
REFRESH MATERIALIZED VIEW EmployeeConfid44;
ALTER MATERIALIZED VIEW GROUPO.EmployeeConfid44 ENCRYPTED;
小心

使用完该示例后,应删除所创建的实例化视图。否则,在试验其它示例时,将无法对其基础表 Employees 和 Departments 执行模式更改。无法变更具有已启用相关实例化视图的表的模式。请参见删除实例化视图

♦  解密实例化视图 (Sybase Central)
  1. 以视图所有者身份或以具有 DBA 权限的用户身份连接到数据库。

  2. 在左窗格中,双击 [视图]。

  3. 右击实例化视图,并选择 [属性]。

  4. 单击 [杂项] 选项卡。

  5. 清除 [实例化视图数据已加密] 复选框。

  6. 单击 [确定]。

♦  解密实例化视图 (SQL)
  1. 以具有 DBA 权限的用户身份,或以实例化视图所有者身份连接到数据库。

  2. 执行带有 NOT ENCRYPTED 子句的 ALTER MATERIALIZED VIEW 语句。

示例

以下语句解密 EmployeeConfid44 实例化视图。

ALTER MATERIALIZED VIEW GROUPO.EmployeeConfid44 NOT ENCRYPTED;
另请参见