以下列出了 16.0 版中引入的对 SQL Anywhere 的行为更改。有关受支持平台和版本的信息,请参见 http://www.sybase.com/detail?id=1061806。
某些系统过程的缺省安全模型已经更改 某些 16.0 版之前的系统过程执行需要具备权限才能执行的数据库操作。在 16.0 版之前的安全模型中,需要使用定义者(所有者)的权限执行这些过程,因此,用户只需要具备执行过程本身的权限,而不需要过程可能执行的所有操作的权限。有一些还需要 DBA 权限的例外情况。
自 16.0 版起,这些过程的缺省安全模型发生了更改。缺省情况下,在新创建的数据库中,这些过程需要凭调用者的特权才能执行。因此,如需执行过程,调用者需要具备过程文档中标注的特权。调用者还需要具备该过程的 EXECUTE 特权,但作为 PUBLIC 的成员即可继承该特权。
可使用 CREATE DATABASE 语句的新 SYSTEM PROCEDURE AS DEFINER 子句或初始化实用程序 (dbinit) 的 -pd 选项,对在创建数据库时是使用旧模型还是新模型进行控制。不过,某些系统过程无论针对哪种安全模型设置始终都需要文档中标注的特权。有关这些过程的列表,请参见以调用者或定义者身份运行 16.0 之前版本的系统过程。
升级数据库时,缺省行为是对已经使用的安全模型进行维护。因此,若正在升级的是 12.0.1 数据库,则非另行指定情况下,已升级的数据库将使用旧的安全模型。
要对升级时使用哪个安全模型进行控制,可使用 ALTER DATABASE 语句的 SYSTEM PROCEDURE AS DEFINER 子句,或升级实用程序的 -pd 选项 (dbupgrad)。有关始终需要 EXECUTE 和特定特权的系统过程集的例外同样适用于创建的升级。
安全模型决策(调用者和定义者)不会影响用户定义过程的缺省行为,该行为仍然缺省为定义者。即便系统过程的缺省值更改为调用者,用户定义过程的缺省值仍为定义者。
相对路径和磁盘沙箱 在以前的版本中,相对路径始终缺省为数据库服务器的工作目录。现在,如果为数据库启用磁盘沙箱,相对路径便会相对于数据库目录,而不是数据库服务器目录。 请参见磁盘沙箱。
视图定义中支持 SELECT * 在以前的版本中,只有 CREATE VIEW 语句的主查询中支持 SELECT *。现在,在主查询、子查询、派生表或 CREATE VIEW 语句的子选择中,均对其提供支持。 请参见CREATE VIEW 语句。
最小口令长度已更改 在以前的版本中,缺省的最小口令长度为 0 个字符。现在,缺省的最小口令长度已更改为 3 个字符。如果应用程序允许使用 0 个字符的口令,可在新的 SQL Anywhere 数据库上执行以下语句更改缺省设置以便与之前的版本相匹配:
SET OPTION PUBLIC.min_password_length=0; |
有关详细信息,请参见min_password_length 选项。
在本地临时表上创建索引的缺省行为已更改 在以前的版本中,数据库服务器在本地临时表上创建索引之前始终执行 COMMIT。现在,数据库服务器在本地临时表上创建索引时不执行 COMMIT。可通过设置 auto_commit_on_create_local_temp_index 数据库选项控制此行为。 请参见auto_commit_on_create_local_temp_index 选项。
新的最大包大小 最大包大小已从 16000 字节增加到 65535 字节。SQL Anywhere 12 及更早版本的客户端在与 SQL Anywhere 16 数据库服务器连接时,包大小限制为 16000 字节。缺省包大小没有更改。 请参见CommBufferSize (CBSIZE) 连接参数。
-ch 数据库服务器选项限制已更改 如使用 -ch 选项指定最大高速缓存大小小于 64 MB,则数据库服务器会将最大高速缓存大小调整为 64 MB。如需要最大高速缓存大小小于 64 MB(不建议使用此设置),则可使用 -chx 选项。这些更改不适用于 Windows Mobile。 请参见-ch 数据库服务器选项。
并发索引构建 在以前的版本中,CREATE INDEX 语句会在构建索引时获取 EXCLUSIVE 表锁。现在,该操作需要在操作开始和结束时维持较短时间的 EXCLUSIVE 表锁,在大多数操作中则需要 SHARED 锁,以便其它连接可以在创建索引时访问表数据。创建索引的连接无法访问表,直至索引创建完毕。必须升级现有数据库才能使用此功能。请参见CREATE INDEX 语句。
当镜像连接阻止事务日志应用时,可以断开连接 某些情况下,当与复制节点或镜像数据库间的连接阻止事务日志应用时,将断开这些连接。例如,如果某个连接正在使用的过程是事务日志正在尝试更改或删除的,那么此连接妨碍事务日志的应用,将断开此连接并将消息输出到服务器控制台。 请参见在镜像数据库中执行查询。
计划高速缓存更改 对于运行时间较长的查询,不会为其高速缓存查询执行计划,因为避免查询优化的收益不及查询的总成本。此外,数据库服务器不会尝试为对主机变量的值非常敏感的查询重新构造可重用的查询计划。
HTTP 服务器请求变量的新缺省值 在以前的版本中,对可以在请求中发送的 HTTP 输入变量的数量没有限制。现在,MaxRequestVars 协议选项限制了 HTTP 输入变量的数量。MaxRequestVars 协议选项的缺省值为 10000 个变量。请参见MaxRequestVars (MAXVARS) 协议选项。
数据库声明的新缺省行为 在以前的版本中,数据库的声明失败都被视作数据库服务器的声明失败,这就导致数据库服务器关闭或向所有客户端连接返回错误。现在,区分对待数据库的声明失败与数据库服务器的声明失败,这样即便在数据库关闭时数据库服务器仍能继续运行。请参见-ufd 数据库服务器选项。
安全功能行为更改 现在,安全功能密钥的最小长度为 6 个字符,某些安全功能无法全局禁用—只能针对单独连接禁用。 请参见安全功能。
敏感信息在输出中被模糊处理 在向请求日志输出包含口令和加密密钥的语句时,被诊断跟踪记录或被 DESCRIBE 语句用作列名称的情况下,会对这些口令和加密密钥进行模糊处理。此行为还应用于 REWRITE 函数的输出、LastStatement 连接属性以及在事件跟踪输出中记录的语句中。
为以下函数、过程和语句隐藏敏感参数、口令和密钥:
个人服务器 (dbeng16) 授权更改 个人服务器的一个 CPU 上最多只能有四个内核。以前,个人服务器仅限使用一个 CPU。请参见服务器授权实用程序 (dblic)。
数据库实用程序行为更改
系统过程和函数行为的更改
编程接口行为更改
SQL 语句行为更改
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2013, SAP 股份公司或其关联公司. - SAP Sybase SQL Anywhere 16.0 |