Knowledge Base

Search Knowledge Base

KB #240086: fn_n_keycount() returns Zero, when greater than Zero expected.



You are expecting fn_n_keycount() to return a value > 0, but it returns 0.


Additional Information:
You can test if there is a global key active in a secured SQL instance by running the following command:

SELECT master.dbo.fn_n_keycount()

If the instance is secured and the key is active, you can expect the returned value to be greater than zero (> 0). However, if it unexpectedly returns zero (0), here are some possible causes:

  • The SQL instance is not, in fact, secured. You can confirm by running the Admin Wizard. The list of SQL instances should provide the status of each SQL instance on the machine. If it is not secured, then secure it using the Admin WIzard
  • You indicated that the Master Must be encrypted when you secured the SQL instance, however, the Master database files are in fact not encrypted. SQL will start, however, Encryptionizer keys will not load to the SQL instance.
  • You indicated Lock Key to Machine when you secured the SQL instance, but the instance was copied to new hardware. Encryptionizer did not load the keys to the SQL instance because it did not recognize the hardware.
  • xp_sectools.dll (if 32bit SQL) or xp_sectools64.dll (if 64bit SQL) is not present in the Windows System32 and/or SysWow64 directories.  Reinstall Encryptionizer.