为了更加安全起见,可以将实例化视图加密。例如,如果实例化视图包含在基础表中已经加密的数据,最好也将实例化视图加密。在数据库中必须已启用表加密,实例化视图才能加密。加密实例化视图时使用在创建数据库时所指定的加密算法和密钥。要查看数据库中当前使用的加密设置(包括是否启用了表加密),请使用 DB_PROPERTY 函数查询 Encryption 数据库属性,如下所示:
SELECT DB_PROPERTY( 'Encryption' ); |
与表加密一样,实例化视图的加密也会影响性能,因为数据库服务器必须将从该视图中所检索的数据解密。
以视图所有者身份或以具有 DBA 权限的用户身份连接到数据库。
在左窗格中,双击 [视图]。
右击实例化视图,并选择 [属性]。
单击 [杂项] 选项卡。
选中 [实例化视图数据已加密] 复选框。
单击 [确定]。
以具有 DBA 权限的用户身份,或以实例化视图所有者身份连接到数据库。
执行带有 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 执行模式更改。无法变更具有已启用相关实例化视图的表的模式。请参见删除实例化视图。
以视图所有者身份或以具有 DBA 权限的用户身份连接到数据库。
在左窗格中,双击 [视图]。
右击实例化视图,并选择 [属性]。
单击 [杂项] 选项卡。
清除 [实例化视图数据已加密] 复选框。
单击 [确定]。
以具有 DBA 权限的用户身份,或以实例化视图所有者身份连接到数据库。
执行带有 NOT ENCRYPTED 子句的 ALTER MATERIALIZED VIEW 语句。
以下语句解密 EmployeeConfid44 实例化视图。
ALTER MATERIALIZED VIEW GROUPO.EmployeeConfid44 NOT ENCRYPTED; |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |