alter encryption key

Description

Changes the current password for an encryption key.

For more information about encrypted columns, see the Encrypted Column Users Guide.

Syntax

alter encryption key [[database.][owner].] keyname
	{ [ as | not default ]
		| [ with passwd 
			'password' | system_encr_passwd | login_passwd ]
			modify encryption 
			 [ with passwd 
			'passwd' | system_encr_passwd | login_passwd ]
		| with passwd 'password'
			add encryption [ with passwd 'password' ] 
			for user user_name
			[ for login_association | for recovery ]
		| drop encryption for
			{ user user_name | key recovery } 
		| [ with passwd 'password ']
			recover encryption with passwd 'password'
		| modify owner user_name
}

Syntax for working with a recovery key copy:

alter encryption key keyname with passwd
		base_key_passwd | old_recovery_passwd
	{ [add encryption with passwd recovery_passwd
		for user key_recovery_user for recovery ] 
	| [modify encryption with passwd new_recovery_passwd 
		for recovery]
	| [recover encryption with passwd new_base_key_passwd]
	}

Parameters

keyname

is the name for a column encryption key.

as [not] default

indicates that the database default property should be assigned to, or unassigned from, this key.

with passwd ['password' | system_encr_passwd | login_password ]

specifies the current password Adaptive Server uses to decrypt the column encryption key, and a new password for one of the following purposes:

  • Modify the encryption of a key or a key copy. The key owner can add key copies for individual users that are accessible through a private password or a login password.

  • Encrypt a newly-added key copy

  • Recover the encryption key after losing a password

Adaptive Server supports the following of passwords for keys:

  • password – a character string up to 255 bytes long.

  • login_passwd – tells Adaptive Server to use the session’s login password.

  • system_encr_passwd – is the system encryption password for the current database.

If you do not specify with passwd, the default is system_encr_passwd.

modify encryption

indicates you are modifying the encryption key or key copy.

add encryption

adds encrypted key copy for a designated user.

for user user_name

specifies the user for whom you are adding or dropping a key copy.

for login_association

indicates that the key copy being added is encrypted by the assigned user’s login password during his or her first access to this key.

for recovery

indicates this key copy is for recovery purposes.

drop encryption

indicates that you are dropping the key copy for the specified user.

recover encryption

makes the base key accessible to a new password.

When you create a key using create encryption key, Adaptive Server saves the key in encrypted form, along with the key’s properties, as a row in sysencryptkeys. This row represents the base key. The key owner can choose to allow access to encrypted data exclusively through the base key.

modify owner

changes the key’s owner to the specified user.

Examples

Example 1

Changes my_key to the default encryption key:

alter encryption key my_key as default

You must have the sso_role or keycustodian_role to change the default property of a key. If the command above is executed by:

To remove the default property from my_key, the SSO or the key custodian as owner of the key, executes:

alter encryption key my_key as not default

If my_key is not the default key, this command returns an error.

Example 2

Changes the password to the important_key encryption key:

alter encryption key important_key with passwd 'oldpassword'
modify encryption with passwd 'newpassword'

If this command is executed by:

Example 3

Changes the password on a key copy to the current session’s login password:

alter encryption key important_key
     modify encryption
     with passwd login_passwd

This command can be executed only by a user who has been assigned a key copy:

Example 4

Changes the password for the important_key encryption key to the system password:

alter encryption key important_key
with passwd 'ReallyBigSecret'
modify encryption with passwd system_encr_passwd

This command can be executed only by the key owner or a user with sso_role, and is allowed only if a key has no key copies. It modifies the encryption of the base key.

Example 5

Changes the password for the important_key encryption key from the system encryption password to a new password (because the system encryption password is the default password, it does not need to be specified in the statement):

alter encryption key important_key
     modify encryption
     with passwd 'ReallyNewPassword'

Example 6

Adds encryption for user “ted” for the important_key encryption key with the password just4now:

alter encryption key important_key
     with passwd 'TopSecret' 
     add encryption with passwd 'just4now'
     for user 'ted'

You must be a key owner or a user with the sso_role to execute this command. Adaptive Server uses the password “TopSecret” to decrypt the base key, making a copy of the raw key and encrypting it for user “ted” using the password “just4now.”

Example 7

Modifies the encryption for user “ted” to use a new password. Only “ted” can execute this command:

alter encryption key important_key
     with passwd 'just4now'
     modify encryption
     with passwd 'TedsOwnPassword'

Example 8

Drops encryption for user “ted” for the important_key encryption key (you must have the sso_role or be the key owner to execute this command):

alter encryption key important_key
     drop encryption for user 'ted'

Example 9

Modifies the owner of important_key to new owner, “tinnap” (you must have the sso_role or be the key owner to execute this command):

alter encryption key important_key modify owner tinnap

Example 10

Sets up the recovery key copy and use it for key recovery after losing a password:

  1. The key custodian originally creates a new encryption key protected by a password.

    create encryption key key1 for AES passwd 'loseitl8ter'
    
  2. The key custodian adds a special encryption key recovery copy for key1 for user “charlie.”

    alter encryption key key1 with passwd 'loseitl8ter'
         add encryption
         with passwd 'temppasswd'
         for user charlie
         for recovery 
    
  3. “charlie” assigns a different password to the recovery copy and saves this password in a locked drawer:

    alter encryption key key1
         with passwd 'temppasswd'
         modify encryption
         with passwd 'finditl8ter'
         for recovery
    
  4. If the key custodian loses the password for base key, he can obtain the password from “charlie” and recover the base key from the recovery copy of the key using:

    alter encryption key key1
         with passwd 'finditl8ter'
         recover encryption
         with passwd 'newpasswd'
    

Usage

Permissions

You must be:

Auditing

For information about auditing encrypted columns, see Chapter 6, “Auditing Encrypted Columns,” in the Encrypted Columns Users Guide.

See also

create encryption key, drop encryption key, and sp_encryption.