您好,我是小DAI,专注于数据库管理员相关的技术问答,请问有什么可以帮您?

sp_encryption

语法

  • 列出加密密钥属性:

    
    sp_encryption help | helpkey
    

  • 为特定密钥或与模式匹配的密钥列出加密密钥属性:

    
    sp_encryption help | helpkey[, <key_name> | wildcard]
    	[, all_dbs | key_copy | display_cols]
    

  • 报告主密钥或双主密钥的信息:

    
    sp_encryption help | 'helpkey', 
    	{'master'|'dual master'} [, 'display_keys' | 'all_dbs'
    

  • 显示用服务密钥加密的对象:

    
    sp_encryption 'help'[, 'servicekeyname'[, 'display_objs']]
    

  • 在状态列中显示外部口令的加密状态:

    
    sp_encryption 'helpextpasswd'
    

  • 显示列名以及用于加密列的密钥:

    
    sp_encryption helpcol[, <table_name> | <column_name> ]
    

  • 显示当前数据库中用户所拥有或分配给用户的密钥:

    
    sp_encryption helpuser[, <user_name> | wildcard ][, key_copy | login_passwd_check ]
    

  • 显示或设置主密钥启动文件名称和路径:

    
    sp_encryption 'mkey_startup_file'[, {'<new_path>' | '<default_location>' | 'null'} 
    	[, {sync_with_mem | sync_with_qrm}]]
    

  • 显示或设置 downgrade kek size 配置:

    
    sp_encryption 'downgrade_kek_size' [, 'true'|'false']
    

  • 显示当前数据库中使用系统加密口令加密的密钥和密钥副本:

    
    sp_encryption system_encr_passwd, '<newpasswd>' [,'<oldpasswd>']
    

    参数

    helpkey

    列出加密密钥属性,包括:

  • 数据库是否包含加密密钥。

  • 以下属性(由具有 sso_role 的用户、密钥管理者或 DBO 运行时):密钥名称、密钥所有者、密钥长度、密钥算法、密钥类型、pad、初始化矢量、用于加密密钥的口令类型、是否已启用密钥恢复以及密钥副本的计数。输出按 owner.key_name 排序。当由非特权用户运行时,此命令会列出密钥名称、密钥所有者和密钥类型。

    help

    包含以用于向后兼容。包含与 helpkey 相同的输出

    <key_name>

    要调查的密钥的名称。列出为 <key_name> 定义的属性。如果省略 <key_name>,则会列出所有密钥的属性。

    <wildcard>

    列出当前数据库中与通配符模式匹配的密钥的属性。有关通配符使用的信息,请参见《参考手册:构件块》。

    all_dbs

    列出所有可用数据库中加密密钥的信息。只有 SSO 可以运行all_dbs。

    key_copy

    列出当前数据库中指定密钥的所有用户副本。输出按 <key_owner>.<key_name> 排序。包括以下内容的相关信息:

  • 基本密钥所有者。

  • 密钥副本是否为恢复密钥副本。

  • 副本所属的用户。

  • 是否使用用户加密口令、登录口令或系统加密口令加密副本以用于登录关联(由登录访问权限指定)。

    login_passwd_check

    指示分配至匹配用户的密钥副本是否与用户登录口令充分同步。即密钥副本的最后更新日期要比登录口令日期晚。密钥副本使用用户的登录口令或登录关联进行加密。

    display_keys

    <system_encr_passwd> 一起使用,以显示使用系统加密口令加密的密钥和密钥副本。与 master 或 dual master 一起使用,以显示使用主密钥或双主密钥加密的密钥和密钥副本。

    您必须是系统安全员、密钥管理者或数据库所有者,才能运行 sp_encryption helpkey, master | 'dual master', display_keys 以显示受主密钥或双主密钥保护的加密密钥。

    display_cols

    显示密钥名称、当前数据库中的所有密钥(或与通配符匹配的密钥)以及密钥加密的列。当 SSO 包括 display_cols 时,它会显示所有可用数据库中由密钥加密的列。当没有 sso_role 的用户运行 display_cols 时,仅显示当前数据库中由密钥加密的列。数据按 <key_name><key_owner><database_name><table_owner><table_name><column_name> 排序。

    master

    报告有关主密钥的信息。

    dual master

    报告有关双主密钥的信息。

    servicekeyname

    被设置为 syb_extpasswdkey 或 syb_syscommkey%。与 display_objs 一起使用,以显示用服务密钥加密的对象。

    display_objs

    显示对象所有者。

    您必须是系统安全员、密钥管理者或数据库所有者,才能运行 sp_encryption helpkey, keyname, display_objs 以显示当前数据库中受 syb_extpasswdkey 或 syb_syscommkey 服务密钥保护的对象。

    helpextpasswd

    显示状态列中的外部口令的加密状态。加密状态为以下状态之一:

  • “FIPS 加密”(FIPS Encryption)– 口令由 syb_extpasswdkey 服务密钥使用与 FIPS 兼容的密码术算法进行保护

  • “需要重置”(Needs Reset)– 指示系统删除了口令,您必须手动重置它。

  • “旧式加密”(Legacy Encryption)– 口令由低于 15.7 版的 SAP ASE 中的算法进行保护。

    您必须是系统安全员才能运行 sp_encryption helpextpasswd,以检查外部口令的状态。

    helpcol <column_name>

    显示列名以及用于加密列的密钥。如果 SSO 包括 helpcol,则即使密钥不存在于当前数据库中,它也会打印该密钥的名称。如果非 SSO 用户包括 helpcol,则当密钥不存在于当前数据库中时,SAP ASE 服务器会打印密钥的 keyid,而省略 <key_name>。输出包括:<owner>.<table>.<column><database>.<owner>.<keyname>。该信息按 <owner>.<table>.<column> 排序。

    helpuser

    显示当前数据库中用户所拥有的或分配给当前数据库中用户的密钥。

    mkey_startup_file

    显示或设置主密钥启动文件名称和路径。sp_encryption 将主密钥启动文件设置为 <new_path> 或缺省位置。如果指定 null 或不指定任何位置,则 sp_encryption 会显示当前主密钥启动文件名称和路径。

    sync_with_mem

    (仅限 Cluster Edition)将服务器内存中存在的主密钥加密密钥写入主密钥启动文件中。替换当前主密钥加密密钥(如果存在)。如果将 automatic master key access 设置为 off,则还会禁用 sync_with_mem。

    您必须是系统安全员才能显示、设置或同步主密钥启动文件。

    sync_with_qrm

    将本地主密钥启动文件更新为仲裁设备中的版本。

    您必须是系统安全员才能显示、设置或同步主密钥启动文件。

    downgrade_kek_size

    显示或设置 downgrade kek size 配置。true 指示 SAP ASE 服务器处于 downgrade kek size 模式,false 可禁用此模式。

    如果不指定任何参数,sp_encryption 会显示 downgrade_kek_size 的当前值。

    您必须是系统安全员或密钥管理者才能运行此命令。

    system_encr_passwd

    显示当前数据库中使用系统加密口令加密的密钥和密钥副本。

    system_encr_passwd, all_dbs

    在设置系统加密口令的每个数据库中显示该口令的属性。输出按数据库名称排序。只有系统安全员能够运行此命令。如果未为所有数据库设置系统加密口令,SAP ASE 服务器将生成消息 19782:

    
    The system encryption password has not been set for all
    available databases
    

    示例

    显示完全加密数据库的密钥信息

    此示例显示一个名为“database encryption key”的密钥类型来指示数据库已完全加密:

    
    1>create encryption key key1 as default for database encryption
    2>go
    1>sp_encryption helpkey, key1
    
    Key Name    Key Owner    Key Length   Key Algorithm
        Key Type                            Pad    Initialization Vector
      Protected By     Key Recovery
         # of Key Copies
    ----------- ------------ ------------ -------------
        --------------------------------   ------ --------------------- 
      -------------- ----------------    -----------------
    key1        dbo          256          AES              
        symmetric database encryption key      0                       1
      master key       0                            0
    
    1>create encryption key key2 for database encryption with master key
    2>create encryption key key3 for database encryption with dual_control
    3>go
    1>sp_encryption helpkey, 'key%'
    Key Name    Key Owner    Key Length   Key Algorithm
        Key Type                            Pad    Initialization Vector
      Protected By     Key Recovery
         # of Key Copies
    ----------- ------------ ------------ -------------
        --------------------------------   ------ --------------------- 
      -------------- ----------------    -----------------
    key1        dbo          256          AES              
        symmetric database encryption key      0                       1
      master key       0                            0
    key2        dbo          256          AES              
        symmetric database encryption key      0                       1
      master key       0                            0
    key3        dbo          256          AES              
        symmetric database encryption key      0                       1
      dual_control(master key + dual master key)  0                  0
    
    1>create database encr_db1 encrypt with key1
    2>create database encr_db2 encrypt with key2
    3>create database encr_db3 encrypt with key3
    4>go
    1>sp_encryption helpkey, '%', "display_dbs"
    Key Name Key Owner Encrypted Database
    -------------------- --------------------------------------
    key1 dbo encr_db1
    key1 dbo encr_db2
    key3 dbo encr_db3
    

  • 显示当前数据库中的密钥信息

    使用 helpkey 参数显示当前数据库中的密钥信息。可以获取有关所有密钥或特定密钥的信息。sp_encryption 的第二个参数提供密钥名称,可包含与 SQL 模式匹配的字符。如果您不是数据库所有者,也不具有 sso_role 或 keycustodian_role,sp_encryption 将显示较少的列。

    当由 SSO、密钥管理者或 DBO 运行时,这会显示当前数据库中所有基本加密密钥的属性:

    
    sp_encryption helpkey
    
    
    Key Name    Key Owner  Key Length  Key Algorithm  Key Type               Pad
         Init Vector  Protected By    Key Recovery  # of Key Copies
    ----------  ---------  ----------  --------------  --------              ----
         -----------  --------------------------    ------------  ---------------
    tinnap_key  tinnap     128         AES            symmetric key          0
         1            system encryption password               0                0
    tinnap_key1 tinnap     128         AES            symmetric default key  0
         1            user Passwd                              1                3
    sample_key1 dbo        192         AES            symmetric key          1
         1            login Passwd                             1                2
    

    当由用户“tinnap”运行时,这会显示当前数据库中所有基本加密密钥的下列属性:

    
    sp_encryption helpkey
    
    
    Key Name          Key Owner   Key Type
    --------------     ---------   ------------
    tinnap_key         tinnap      symmetric key
    tinnap_key1        tinnap      symmetric default key
    sample_key1        dbo         symmetric key
    

    如果您不是系统安全员,也不具有 keycustodian_role,查询将显示您在当前数据库中拥有的所有基本密钥。如果未将 <user_name> 指定为第二个参数,查询将显示您拥有的基本密钥。

    当由 SSO 运行时显示基本加密密钥的属性

    当由 SSO、密钥管理者或 DBO 在当前数据库中运行时,会显示基本加密密钥 sample_key1 的属性:

    
    sp_encryption helpkey, sample_key1
    
    
    Key Name   Key Owner  Key Length  Key Algorithm          Key Type
       Pad  Init Vector   Protected By      Key Recovery     # of Key Copies
    ---------  --------    ---------  --------------         --------------
       ---  -----------   ------------      -------------    ---------------
    sample_key1     dbo          192             AES            symmetric Key
         1            1           Login                  1                   2
    

    当非特权用户“tinnap”运行此命令时,它会显示当前数据库中基本加密密钥 sample_key1 的以下属性:

    
    sp_encryption helpkey, sample_key1
    
    
    Key Name       Key Owner    Key Type
    -------------  -----------  ------------
    sample_key1            dbo  ymmetric key
    

  • 显示所有可用数据库中的所有基本加密密钥的属性

    只有 SSO 可以运行此命令:

    
    sp_encryption helpkey, NULL, all_dbs
    
    
    Db.Owner.Keyname         Key Length   Key Algorithm  Key Type
    Pad	   Init Vector   Protected By       Key Recovery    #of Key Copies
    ------------------------   ----------   -----------  --------------------
    -----  ----------   -----------------    --------------  ----------------
    keydb.dbo.cc_key           256          AES         symmetric default key
        1           1   system encr passwd                0              0
    keydb.dbo.sample_key1      128          AES         symmetric key
        0           0   system encr passwd                1              4
    keydb1.tinnap.tinnap_key   128          AES         symmetric key
        0           1   system encr passwd                0              0
    keydb1.tinnap.tinnap_key1  128          AES         symmetric default key
        0           1        user password                1              3
    keydb1.dbo.sample_key1     192          AES         symmetric key
        1           1         login passwd                1              2
    
    显示所有可用数据库中与 %key 相似的所有基本加密密钥的属性
    all_dbs 指示需要所有数据库的密钥信息。您必须具有 sso_role 才能使用 all_dbs 参数:
    
    
    sp_encryption helpkey, '%key', all_dbs
    
    
    Db.Owner.Keyname         Key Length   Key Algorithm  Key Type
    Pad   Init Vector   Protected By       Key Recovery    #of Key Copies
    ------------------------   ----------   -----------  --------------------
    -----  ----------   ---------------    --------------  ----------------
    keydb.dbo.cc_key                  256      AES       symmetric default key
        1           1            system encr passwd     0               0
    keydb1.tinnap.tinnap_key          128      AES              symmetric key
        0           1             system encr passwd    0               0
    

    当由 SSO 运行时,显示数据库中名称与“tinnap%”相似的所有基本加密密钥的属性

    当由 SSO、密钥管理者或 DBO 运行时,显示当前数据库中名称与“tinnap%”相似的所有基本加密密钥的属性:

    
    sp_encryption helpkey, "tinnap%"
    
    
    Key Name  Key Owner  Key Length   Key Algorithm            Key Type
       Pad  Init Vector   Protected By         Key Recovery     # of Key Copies
    ---------  --------    ---------  --------------  -----------------------
       ---  -----------   -------------------  ------------    ---------------
    tinnap_key   tinnap          128             AES   symmetric key
         0            1   system encr passwd              0                  0
    tinnap_key1  tinnap           128             AES   symmetric default key	     0            1          user passwd              1                  3
    

    当由用户“tinnap”运行时,会显示当前数据库中名称与“tinnap%”相似的加密密钥的以下属性:

    
    sp_encryption helpkey, "tinnap%"
    
    
    Key Name           Key Owner  Key Type
    ------------------  ---------  ------------
    tinnap_key          tinnap     symmetric key
    tinnap_key1         tinnap     symmetric default key
    

    通过将 key_copy 用作第三个参数显示有关密钥副本的信息

    通过将 key_copy 用作第三个参数显示有关密钥副本的信息。为第二个参数的 <keyname> 输入空值而非具体值,可查看有关所有密钥副本的信息。可在 <keyname> 中使用与模式匹配的字符(请参见前面的示例):

    
    sp_encryption helpkey, tinnap_key1, key_copy
    
    
    Owner.Keyname         Assignee       Protected by       Key Recovery
    ------------------     ---------       ----------------       ----------
    tinnap.tinnap_key1     joesmp          user passwd            0
    tinnap.tinnap_key1     samcool         user passwd            1
    tinnap.tinnap_key1     billyg          user passwd            0
    

    当由用户“joesmp”运行时,这会显示当前数据库中分配给用户“joesmp”的所有加密密钥副本,并且如果该用户是该密钥的所有者,则还会显示该密钥名称的所有密钥副本:

    
    sp_encryption helpkey, tinnap_key1, key_copy
    
    
    Owner.Keyname         Assignee       Protected by          Key Recovery
    ------------------     ---------       ----------------      ------------
    tinnap.tinnap_key1        joesmp             user passwd                 0
    
    显示所有可用数据库中用数据库中的密钥加密的所有加密列
    使用 display_cols 参数可显示所有可用数据库中用当前数据库中的密钥加密的所有加密列。如果您不具有 sso_role,查询仅显示当前数据库中由当前数据库中的密钥加密的加密列。
    
    可使用模式匹配的字符或 <code><key_name> 作为第二个参数。如果将 <key_name> 的模式匹配字符用作 sso_role,查询将显示所有可用数据库中由模式匹配的 <key_name> 加密的所有加密列。如果使用 <key_name> 作为第二个参数,并且您具有 sso_role,将显示所有可用数据库中由指定 <key_name> 加密的所有加密列:
    
    

    sp_encryption helpkey, null, display_cols

    
    
    

    Key Name Key Owner Database Name Table Owner Table Name Column Name

    ---------- --------- ------------- ---------- ---------- ----------

    tinnap_key tinnap testdb1 tinnap t3 c3

    tinnap_key1 tinnap testdb1 tinnap t4 c4

    sample_key1 dbo coldb dbo t1 c1

    sample_key1 dbo coldb billyg t2 c2

  • 显示使用数据库中的系统加密口令加密的所有密钥和密钥副本

    显示当前数据库中使用系统加密口令加密的所有密钥和密钥副本。如果您不具有上述特权,查询将显示由用户拥有或分配给相应用户的使用系统加密口令加密的密钥:

    
    sp_encryption helpkey, system_encr_passwd, display_keys
    
    
    Owner.Keyname                   Assignee
    ---------------                  -------------
    dbo.cc_key                                NULL
    dbo.sample_key1                           NULL
    dbo.sample_key1                         tinnap
    

  • 显示数据库中由用户拥有的所有基本密钥

    在由数据库所有者或具有 keycustodian_role 或 sso_role 的用户运行时,helpuser 参数会显示当前数据库中由用户拥有的所有基本密钥:

    
    sp_encryption helpuser
    
    
    Owner.Keyname             Protected by
    ---------------              -------------------tinnap.tinnap_key           system encr passwd
    tinnap.tinnap_key1                 user passwd
    dbo.sample_key1                    login passwd
    

    如果用户“tinnap”运行此命令,则会列出当前数据库中由此用户所拥有的所有基本密钥:

    
    sp_encryption helpuser
    
    
    Owner.Keyname             Protected by
    ---------------              -------------------tinnap.tinnap_key           system encr passwd
    tinnap.tinnap_key1           user passwd
    

  • 显示分配给一个或多个用户的密钥副本

    数据库所有者或具有 keycustodian_role 或 sso_role 的用户可结合使用 key_copy 和 helpuser 参数显示当前数据库中分配给一个或多个用户的密钥副本。可在 <user> 参数中使用模式匹配的字符。此查询显示当前数据库中所有用户的密钥副本:

    
    sp_encryption helpuser, NULL, key_copy
    
    
    Owner.Keyname            Assignee          Protected by      Key Recovery
    ---------------------      -----------      ----------------  -----------
    dbo.sample_key1                 tinnap          login passwd           0
    tinnap.tinnap_key1              joesmp           user passwd           0
    dbo.sample_key1                 joesmp          login passwd           1
    tinnap.tinnap_key1             samcool           user passwd           1
    tinnap.tinnap_key1              billyg            user passwd          0
    

    如果您不是数据库所有者,也不具有 keycustodian_role 或 sso_role,此查询将显示您拥有的所有密钥的副本,以及其他密钥所有者分配给您的密钥副本。例如,当用户“tinnap”运行此查询时:

    
    sp_encryption helpuser, NULL, "key_copy"
    
    
    Owner.Keyname            Assignee         Protected by       Key Recovery
    ---------------------     -----------      ----------------   ---------
    dbo.sample_key1                tinnap          login passwd           0
    tinnap.tinnap_key1             joesmp           user passwd           0
    tinnap.tinnap_key1            samcool           user passwd           1
    tinnap.tinnap_key1              billyg            user passwd         0
    

  • 显示数据库中的所有加密列以及用于加密列的密钥

    如果您是数据库所有者或是具有 keycustodian_role 或 sso_role 的用户,helpcol 将显示当前数据库中的所有加密列以及用于加密列的密钥。如果您不具有上述特权,则当加密密钥位于其它数据库中时,helpcol 将显示 keyid 而非 <key_name>

    
    sp_encryption helpcol
    
    
    Owner.Table.Column           Db.Owner.Keyname
    -----------------------       ---------------------
    dbo.t1.c1                     keydb1.dbo.sample_key1
    billyg.t2.c2                  keydb.dbo.sample_key1
    tinnap.t3.c3                  coldb.dbo.sample_key2
    

  • 显示表中的所有加密列或特定加密列

    如果将 helpcol 参数与 <table_name><column_name> 参数结合使用,将显示给定表中的所有加密列或特定加密列。当由具有 sso_role 的用户运行时,以下查询将显示当前数据库中表 t3 中的所有加密列,以及用于在所有可用数据库中加密列的密钥。在由不具有 sso_role 的用户运行时,如果密钥不在当前数据库中,此查询将显示该密钥的 ID 而非其名称。第二个参数可具有 [<database_name>.][<table_name>.][<column_name>] 组合:

    
    sp_encryption helpcol, t3
    
    
    Owner.Table.Column           Db.Owner.Keyname
    -----------------------      ---------------------
    tinnap.t3.c3                  coldb.dbo.sample_key2
    

  • 显示每个数据库的系统加密口令属性

    显示每个数据库的系统加密口令属性(您必须具有 sso_role 才能运行此查询):

    
    sp_encryption helpkey, system_encr_passwd, all_dbs
    
    
    Database  Type of system_encr_passwd   Last modified by            Date
    --------  --------------------------    ---------------   ----------------
    master                    persistent                sa  Aug 26 2008 10:05AM
    

  • 显示数据库中所有使用主密钥加密的加密密钥

    显示当前数据库中所有使用主密钥加密的加密密钥(您必须具有 sso_role、keycustodian_role 或是数据库所有者,才能运行此查询):

    
    sp_encryption helpkey,'master',display_keys
    
    
    Owner.Keyname      Assignee   
    ---------------- ---------- 
    user1.key_dual         NULL
    user1.key_mst          NULL
    user4.key_dC_pwd       NULL
    user4.key_dC_pwd      user5
    user4.key_dC_pwd      user6
    user4.key_dC_pwd    KC_tdb1 
    

  • 显示当前主密钥启动文件的名称和位置

    显示为当前服务器配置的当前主密钥启动文件的名称和位置:

    
    sp_encryption mkey_startup_file
    
    
    Msg 19956, Level 16, State 1: Procedure 'sp_encryption', Line 298: The current master key startup file is:'/sybase/release/ASE-150/init/ase_encrcols_mk_l157.dat'. 
    

  • 显示加密存储过程

    显示用密钥 syb_syscommkey_123456 加密并被 user1 和 user2 拥有的三个存储过程:

    
    sp_encryption  helpkey, "syb_syscommkey%", display_objs
    
    
    Key Name                            Key Owner     Database Name
            Object owner           Object Name 
    ------------                        -------       -----------
            ------------            -----------       syb_syscommkey_1234567890ab             dbo            testdb
                  user1            sp_mysproc1
    syb_syscommkey_abcdefghijkl123456       dbo            testdb
                  user1            sp_mysproc2_  
    syb_syscommkey_ABCDEF123456             dbo            testdb
                  user2            sp_mysproc3
    

    用法

  • 对数据库进行完全加密时,sp_encryption 会报告一个名为“database encryption key”的密钥类型。

  • 向运行 sp_encryption 的用户授予的特权将决定输出的内容。有关详细信息,请参见 。

  • 如果运行 sp_encryption helpkey 并且数据库中没有密钥,则会显示一条信息性消息。

  • 必须指定 <key_copy> 参数,才可获取有关密钥副本的信息。如果未指定 <key_copy> 参数,则 sp_encryption 仅返回有关基本密钥的信息。

  • 如果 sp_encryption helpkey, <keyname>, key_copy 中的 <keyname> 为 NULL,则它会为 SSO、密钥管理者或 DBO 列出当前数据库中的所有密钥副本。如果没有特权的用户运行此命令,则它会列出当前数据库中分配给该用户的所有密钥副本,以及当前数据库中该用户所拥有密钥的所有密钥副本。

  • 对于 sp_encryption helpcol, <column_name> 使用 <name>.<name>.<name> 格式,其中:

    a) <name> – 如果 sp_encryption 找不到此名称的表,则它会查找具有此名称的所有列。

    b) <name>.<name> – 是 <owner>.<table>。如果 sp_encryption 找不到此名称的表,则会查找名称为 <table.column> 的单个列。

    c) <name>.<name>.<name> – 是 <owner>.<table>.<name>

    对于当前数据库中由这些规则确定的所有列,sp_encryption 会显示列名以及用于加密列的密钥。

    sp_encryption helpcol, <column_name> 的输出是 <owner>.<table>.<column><db>.<owner>.<keyname>。当由非 SSO 用户运行时,<keyname> 表示为 <database>.<keyid>,并且密钥存在于与加密列不同的数据库中。结果集按 <owner>.<table>.<column> 排序。

    sp_encryption 的限制为:

  • 只有 SSO 才能运行 sp_encryption helpkey [, <keyname> | wildcard], all_dbs ,以获取所有数据库中的密钥属性。如果不具有 sso_role 的用户运行此命令,将收到“unauthorized user”(未授权用户)错误消息。如果密钥没有限定 keyname 或 wildcard,则 SAP ASE 服务器会返回一条消息,指出 'There are no encryption keys (key copies) like keyname in all databases'.

  • 当 SSO 运行 sp_encryption helpkey, <keyname>, <display_cols> 时,它会列出所有可用数据库中由 <keyname> 加密的所有列。如果没有特权的用户运行此命令,则它会列出当前数据库中由 <keyname> 加密的列。

    如果 SSO 运行 sp_encryption helpkey, <keyname>, <display_cols> 并且 <keyname> 值为 NULL,则它会显示所有可用数据库中的所有加密列。当没有特权的用户运行此命令时,它会显示当前数据库中的所有加密列。

  • 如果 SSO、密钥管理者或 DBO 在没有为 helpuser 参数指定 <user_name><key_copy> 的情况下运行 sp_encryption helpuser, <user_name>, key_copy,则它会列出当前数据库中所有用户拥有的所有基本密钥。如果没有特权的用户在未指定 <user_name><key_copy> 的情况下运行 sp_encryption,则它会显示当前用户所拥有的基本密钥。

    如果任何用户运行 sp_encryption helpuser, <user_name>,则它会列出 owner.keyname 所拥有的所有基本密钥。如果没有特权的用户运行该命令并且不拥有基本密钥,则 SAP ASE 服务器会显示信息性消息以指出此情况。

    如果 SSO、密钥管理者或 DBO 运行 sp_encryption helpuser, <user_name>, <key_copy>,则它会列出分配给 <user_name> 的密钥副本。如果没有特权的用户发出此命令,则它会列出当前数据库中分配给该用户的密钥副本以及该用户所拥有的密钥的密钥副本,并在结果集中包含以下列:Owner.Keyname、Assignee、Type of Password 和 Key Recovery。输出按 Assignee 排序。

    如果 sp_encryption helpuser <user_name><user_name> 为 NULL,<key_copy> 会为 SSO、密钥管理者或 DBO 列出当前数据库中的所有密钥副本。对于没有特权的用户,它会列出当前数据库中分配给该用户的所有密钥副本,以及该用户所拥有的密钥的密钥副本。

  • 当 SSO、密钥管理者或 DBO 运行 sp_encryption helpkey, <keyname>, <key_copy> 时,它会列出当前数据库中 <keyname> 的密钥副本。如果没有特权的用户运行此命令,则它会列出分配给该用户的该 <keyname> 的密钥副本,如果该用户是密钥所有者,则会列出该 <keyname> 的密钥副本。

  • SSO、密钥管理者和 DBO 可以运行 sp_encryption helpkey, <system_encr_passwd>, display_keys,以接收当前数据库中由系统加密口令加密的所有密钥和密钥副本的相关信息。没有特权的用户会收到当前数据库中他们所拥有的或已分配到的基本加密密钥或密钥副本的相关信息。仅当密钥副本是为登录关联而创建时,才会使用系统加密口令进行加密。输出按 <owner>.<keyname> 排序。