远程Sybase数据库技术支持,联系手机:13811580958,QQ:289965371!

 

随着Sybase被完全整合到SAP下,Sybase原来的支持网站被SAP Support Portal取代。
只有购买了SAP服务的用户才能使用账号登录SAP Support Portal进行介质下载、补丁升级、报Incident等。
目前,原Sybase所有产品(包括:Adaptive Server Enterprise、Sybase IQ、Replication Server、PowerDesigner等)的官方手册仍然可以从http://infocenter.sybase.com/help/index.jsp进行浏览或下载。暂不清楚该网站http://infocenter.sybase.com/help/index.jsp何时会被完全迁移到SAP Support上!
Sybase官方手册英文版有html和pdf两种格式,而中文版手册只有pdf一种格式。为了国内Sybase用户更方便、快捷地搜索Sybase常见产品的官方手册内容,特将中文版Sybase官方手册转为html格式!
Sybase产品官方手册中文版的html格式所有内容的版权归SAP公司所有!本博客站长是Sybase数据库的铁杆粉丝!

如有Sybase数据库技术问题需要咨询,请联系我!

  QQ :289965371 点击这里给我发消息
  Email:

以下官方手册为ASE 15.7 ESD#2中文版:

  1. 新增功能公告 适用于 Windows、Linux 和 UNIX 的 Open Server 15.7 和 SDK 15.7
  2. 新增功能摘要
  3. 新增功能指南
  4. ASE 15.7 发行公告
  5. 配置指南(windows)
  6. 安装指南(windows)
  7. 参考手册:构件块
  8. 参考手册:命令
  9. 参考手册:过程
  10. 参考手册:表
  11. Transact-SQL® 用户指南
  12. 系统管理指南,卷 1
  13. 系统管理指南,卷 2
  14. 性能和调优系列:基础知识
  15. 性能和调优系列:锁定和并发控制
  16. 性能和调优系列:监控表
  17. 性能和调优系列:物理数据库调优
  18. 性能和调优系列:查询处理和抽象计划
  19. 性能和调优系列:使用 sp_sysmon 监控 Adaptive Server
  20. 性能和调优系列:利用统计分析改进性能
  21. 程序员参考 jConnect for JDBC 7.0.7
  22. Adaptive Server Enterprise 中的 Java
  23. 组件集成服务用户指南
  24. Ribo 用户指南
  25. 内存数据库用户指南
  26. Sybase Control Center for Adaptive Server® Enterprise
  27. 安全性管理指南
  28. 实用程序指南

 


< 上一个 | 内容 | 下一步 >

alter encryption key

说明 更改当前口令、添加和删除密钥副本、重新生成加密密钥。 有关加密列的详细信息,请参见 《加密列用户指南》。

语法 改变主密钥:

alter encryption key [dual] master with char_string { add encryption

{with passwd char_string for user user_name [for recovery]

| for automatic_startup}

| modify encryption { with passwd char_string [for recovery]

| for automatic_startup }

| drop encryption

{ for user user_name | for recovery | for automatic_startup }

| regenerate key

[ with passwd char_string] | recovery encryption

with passwd char_string | modify owner user_name }

改变 syb_extpasswdkey 服务密钥:

alter encryption key syb_extpasswdkey [ with { static key | master key}]

{ regenerate key [ with { static key | master key }]

| modify encryption [ with { static key | master key }] }

改变列加密密钥:

alter encryption key [[database.][owner].]keyname

{ [ as | not default ] [dual] master

[ with { static key | master key} ] regenerate key

[ with { static key | master key [no] dual_control} ] | [with passwd 'password' | system_encr_passwd | login_passwd |

'base_key_password'] modify encryption

[ with {passwd {'password' | system_encr_passwd | login_passwd } | master key }]

[[no] dual_control] for automatic startup

add encryption [ with passwd 'password' | 'key_copy_password ] for user user_name

[for [login_association | recovery | automatic_startup]] drop encryption for { user user_name | recovery

[ for recovery ] | [ for automatic_startup ]}

| [ with passwd 'password ']

recover encryption with passwd 'password'

| modify owner user_name}

参数 keyname

是列加密密钥的名称。


as [not] default

指示数据库缺省属性应该分配给此密钥,或者从此密钥取消分配。

[dual] master 数据库级密钥,用于对在其中定义它们的数据库内的其它密钥进行加 密。这些密钥不用于加密数据。

static key | master key

with {static key | master key} 子句的第一个实例只是有关 syb_extpasswdkey 当前加密方式的断言。由于 Adaptive Server 知道 syb_extpasswdkey 当前是如何加密的,因此,此子句是可选的。

with {static key | master key} 子句的第二个实例位于 regenerate key 操作之 后,能让管理员将重新生成的密钥的加密从静态更改为动态,反之亦 然。如果省略该子句,重新生成的密钥就会像在发出此命令之前那样 被加密。

with {static key | master key} 子句的第三个实例位于 modify encryption 操作 之后,用于将现有密钥的保护更改为使用静态密钥或主密钥 (按照 指定)。如果省略该子句,缺省情况下就会使用静态密钥。

[no] dual_control

指示是否使用双控制来创建主密钥。

regenerate key

指示您正在重新生成密钥。


with passwd ['password' | system_encr_passwd | login_password

'base_key_password']

指定 Adaptive Server 用于解密列加密密钥的当前口令和用于下列用途 之一的新口令:

修改密钥或密钥副本的加密。

加密新添加的密钥副本。密钥所有者可为单个用户添加能够通过 私有口令或登录口令访问的密钥副本。

在丢失口令后恢复加密密钥。

Adaptive Server 支持以下密钥口令:

password – 最大长度为 255 字节的字符串。

login_passwd – 通知 Adaptive Server 使用会话的登录口令。

system_encr_passwd – 当前数据库的系统加密口令。

' base_key_password ' – 用于加密基本密钥的口令,可能只有密钥 管理者知道。该口令长度最多可以是 255 个字节。 Adaptive Server 使用第一个口令来解密基本列加密密钥。

如果未指定 with passwd,则缺省值为 system_encr_passwd

modify encryption

指示您要修改加密密钥或密钥副本。

for automatic startup 指示密钥副本将用于在启用了自动主密钥访问的服务器重新启动后访 问主密钥或双主密钥。

add encryption

为指定用户添加加密密钥副本。

key_copy_password - 用于加密密钥副本的口令。该口令长度不能大于 255 个字节。 Adaptive Server 会创建解密基本密钥的副本,使用从 key_copy_password 派生的密钥加密密钥对该副本进行加密,并在 sysencryptkeys 中将加密基本密钥副本保存为新行。

for user user_name

指定要为其添加或删除密钥副本的用户。

for login_association 指示要添加的密钥副本以后将由在用户首次访问该密钥时分配的用 户登录口令加密。

for recovery

指示是否在口令丢失的情况下使用密钥副本恢复主密钥。


drop encryption

指示您要为指定用户删除密钥副本。

recover encryption

使新口令可以访问基本密钥。不适用于密钥副本。

modify owner

将密钥所有者更改为指定用户。

示例 示例 1 my_key 更改为缺省加密密钥:

alter encryption key my_key as default

您必须拥有 sso_role keycustodian_role,才能更改密钥的缺省属性。如 果上述命令:

由系统安全员 (SSO) 执行, Adaptive Server 将无条件地从以前的缺 省密钥 (如果有)中删除缺省属性。

由密钥管理者执行,则此人必须拥有 my_key。密钥管理者必须拥 有以前的缺省密钥 (如果存在)。

若要从 my_key 中删除缺省属性,并且 SSO 或密钥管理者为密钥所有 者,请执行:

alter encryption key my_key as not default

如果 my_key 不是缺省密钥,则此命令将返回错误。

示例 2 更改 important_key 加密密钥的口令:

alter encryption key important_key with passwd 'oldpassword' modify encryption

with passwd 'newpassword'

如果此命令:

由密钥所有者执行 – 则命令将对基本密钥重新加密

由分配了密钥副本的用户执行 – 则命令将对该密钥副本重新加密。

示例 3 将密钥副本的口令更改为当前会话的登录口令 (只能由已分配密 钥副本的用户执行):

alter encryption key important_key modify encryption

with passwd login_passwd

使用登录口令只能加密密钥副本。如果您尝试使用登录口令加密基本密 钥, Adaptive Server 将返回错误。

示例 4 important_key 加密密钥的口令更改为系统口令:


alter encryption key important_key with passwd 'ReallyBigSecret'

modify encryption with passwd system_encr_passwd

此命令只能由密钥所有者或者具有 sso_role 的用户执行,并且只允许在 密钥没有密钥副本时执行。(有副本的基本密钥必须由用户指定的口令 进行加密。)此示例将修改基本密钥的加密。

示例 5 important_key 加密密钥的口令由系统加密口令更改为新口令。 由于系统加密口令是缺省口令,因此无需在语句中指定:

alter encryption key important_key modify encryption

with passwd 'ReallyNewPassword'

示例 6 使用口令 “just4now”为用户 “ted”的 important_key 加密密钥添 加加密:

alter encryption key important_key with passwd 'TopSecret'

add encryption with passwd 'just4now' for user 'ted'

只有密钥所有者或具有 sso_role 的用户才能执行此命令。 Adaptive Server 使用 “TopSecret”解密基本密钥,同时创建原始密钥的副本并使 用口令 “just4now”为 Ted 加密该副本。

示例 7 修改 Ted 的加密以使用新口令。只有 Ted 才能执行此命令:

alter encryption key important_key with passwd 'just4now'

modify encryption

with passwd 'TedsOwnPassword'

示例 8 为用户 “ted”删除 important_key 加密密钥的加密 (只有拥有

sso_role 的用户或密钥所有者才能执行此命令):

alter encryption key important_key drop encryption for user 'ted'

示例 9 important_key 的所有者修改为新所有者 “tinnap”(只有拥有

sso_role 的用户或密钥所有者才能执行此命令):

alter encryption key important_key modify owner tinnap

示例 10 使用主密钥来加密现有 CEK k2”:

alter encryption key k2

with passwd 'goodbye' modify encryption with master key


示例 11 重新加密当前用主密钥加密的现有 CEK k3”,以便使用双控制:

alter encryption key k3

modify encryption with master key dual_control

示例 12

示例 13 设置恢复密钥副本,并在丢失口令后将其用于密钥恢复。

1 密钥管理者最初创建由口令保护的新加密密钥:

create encryption key key1 for AES passwd 'loseitl8ter'

2 密钥管理者为 Charlie 添加 key1 的特殊加密密钥恢复副本。

alter encryption key key1 with passwd 'loseitl8ter' add encryption

with passwd 'temppasswd' for user charlie

for recovery

3 Charlie 分配了不同的口令以恢复副本,并将此口令存放在锁住的抽 屉中:

alter encryption key key1 with passwd 'temppasswd' modify encryption

with passwd 'finditl8ter' for recovery

4 如果密钥管理者丢失了基本密钥的口令,则他可以从 Charlie 处获得 口令,并使用以下命令从恢复副本恢复基本密钥:

alter encryption key key1 with passwd 'finditl8ter' recover encryption

with passwd 'newpasswd'

用法 如果 SSO 发出 alter encryption key,将密钥设置为数据库缺省值,则 指定密钥会将任何现有密钥替换为缺省值。

如果密钥管理者发出 alter encryption key,将密钥设置为数据库缺省值, 则指定密钥和当前缺省密钥 (如果存在)必须由密钥管理者拥有。

密钥由具有 keycustodian_rolesso_role 的用户或被显式授予 create encryption key 命令执行权限的用户拥有和管理。有权处理和查看加 密列中数据的所有用户均可使用密钥。 Adaptive Server 对密钥的保 护方式将影响密钥的访问方式:


a 密钥所有者通过系统加密口令创建加密密钥 – 当用户访问加密 数据时, Adaptive Server 将使用系统加密口令解密基本密钥。 密钥所有者不为用户创建单个密钥副本。

b 密钥管理者使用显式口令加密基本密钥 – 密钥管理者不创建密 钥副本,而是与处理加密数据的所有用户共享此口令。用户或 应用程序必须使用 set encryption passwd 命令提供此口令,才能 访问数据。请参见 set encryption passwrd

c 密钥管理者为最终用户添加密钥副本,因此用户不必共享口 令。用户必须使用 set encryption passwd 输入其密钥副本的口 令,才能访问加密列。或者,密钥管理者也可以通过密钥被授 予人的登录口令来设置用于加密的密钥副本。不必通过 set encryption passwd 输入此口令。

在使用 create encryption key 创建密钥时,Adaptive Server 会以加密形 式将密钥与密钥的属性一起作为 sysencryptkeys 中的一行进行保存。 此行表示基本密钥。密钥所有者可以选择仅允许通过基本密钥访问 加密数据,或使用 alter encryption key 为单个用户添加密钥副本。

如果 alter encryption 不包括 with passwd 参数,Adaptive Server 将使用 系统加密口令。

使用系统加密口令不能改变具有副本的密钥的基本密钥,也不能加 密密钥副本。

用户分配的密钥副本只能修改这些用户自己的密钥副本。

如果指定 login_association,则 Adaptive Server 会使用系统加密口令 临时加密密钥副本。当副本所有者使用该密钥加密或解密数据时, 该所有者的登录口令将对密钥副本重新加密。

无法为相同的密钥副本指定 for recovery login_association

权限 alter encryption key 的权限检查因您的细化权限设置而异。


image

image

image

image

image

细化权限已启用 在启用细化权限的情况下,您必须是具有 manage column encryption key 特权的 用户,才能执行 alter encryption key as default not default

您必须是密钥所有者或具有以下取决于密钥类型的特权:

列加密密钥 – manage column encryption key

主密钥 – manage master key

服务密钥 – manage service key

更改为:

使用 alter encryption key 添加或删除密钥副本、恢复密钥和修改密钥所有者。

执行 alter encryption key 修改基本密钥的口令。


注释 您必须是分配有密钥副本的用户,才能修改密钥副本口令。您隐式拥 有修改自己的密钥副本口令的权限。


细化权限已禁用 在禁用细化权限的情况下,您必须是具有 sso_role keycustodian_role 的用 户,才能执行 alter encryption key as default not default

只有系统安全员或密钥所有者才能执行以下操作:

使用 alter encryption key 添加或删除密钥副本、恢复密钥和修改密钥所有者。

执行 alter encryption key 修改基本密钥的口令。


注释 您必须是分配有密钥副本的用户,才能修改密钥副本口令。您隐式拥 有修改自己的密钥副本口令的权限。


审计 有关审计加密列的信息,请参见 《加密列用户指南》中的 “审计加密 列”。

另请参见 create encryption key drop encryption key sp_encryption




--------------------------------------华丽的分割线-------------------------------------------------------------------------
之前就已经研发成功了能够从Sybase SQL Anywhere的DB文件中恢复数据的工具:ReadASADB。
此工具支持ASA v5.0,v6.0,v7.0,v8.0,v9.0,v10.0,v11.0,v12.0等版本。
恢复Sybase SQL Anywhere的工具在国内应该算首创。

ReadASADB功能
能够从损坏的SQL Anywhere数据文件(.db)和UltraLite数据文件(.udb)上提取数据的非常规恢复工具

  1. 适用于所有的SQL Anywhere版本    包括:5.x,6.x,7.x,8.x,9.x,10.x,11.x,12.x
  2. 适用于所有的UltraLite版本
  3. 能够恢复出来表结构和数据
  4. 能够恢复自定义数据类型
  5. 能够恢复存储过程等对象的语法
  6. 能够导出到目标数据库
  7. 能够导出到SQL文件并生成导入脚本
  8. 支持多种字符集  包括:cp850、cp936、gb18030、utf8等
  9. 能够恢复未加密或者简单加密类型的数据
  10. 简单易用
  11. 限制:不支持AES加密的数据文件
请参考:研发成功了从Sybase SQL Anywhere的DB文件上恢复数据的工具
            SQL Anywhere数据库非常规恢复工具ReadASADB使用介绍

ReadASADB适用场景

各种误操作:

  1. 误截断表(truncate table)
  2. 误删除表(drop table)
  3. 错误的where条件误删数据
  4. 误删除db或log文件
  5. 误删除表中的字段

本工具的应用场景:

1.因为物理磁盘故障、操作系统、系统软件方面或者掉电等等原因导致的Sybase SQL Anywhere数据库无法打开的情况;
2.误操作,包括truncate table,drop table,不正确的where条件导致的误删除等;
Sybase SQL Anywhere无法打开时,比较常见的错误是:Assertion failed。
如:
1、Internal database error *** ERROR *** Assertion failed:201819 (8.0.1.2600) Checkpoint log: invalid bitmap page -- transaction rolled back
2、Internal database error *** ERROR *** Assertion failed:201819 (8.0.1.2600) Page number on page does not match page requested -- transaction rolled back
3、Internal database error *** ERROR *** Assertion failed:200502 (9.0.2.2451) Checksum failure on page 23 -- transaction rolled back
4、File is shorter than expected
5、Internal database error *** ERROR *** Assertion failed: 201116 Invalid free list index page found while processing checkpoint log -- transaction rolled back
6、*** ERROR *** Assertion failed: 51901 Page for requested record not a table page or record not present on page等等。
+-------------------------------------华丽的分割线-------------------------------------------------------------------------