KeyServer Tables Description


This document describes each table, as well as each field of each table, and how to use them. See Export Configuration for a description of how to configure KeyServer to export these tables to an external database.


List of Tables

KSAudits
  • Audit data which tracks what programs are on each machine.
KSComputerGroupMembers
  • KSComputerGroupMembers is a cross table to associate computers and groups.
  • This table only contains entries for computers which have been explicitly added to Computer Groups. If a group has a location defined, but no computers listed explicitly, this table will not have any entries referring to that group.
KSComputerDivisions (new in KS 6.0.0.9)
  • Computer Divisions which have been configured in KeyConfigure.
  • These are the divisions which appear on the left side of the computers window.
  • There are no entries for the Discovered and Uncategorized divisions.
KSComputerGroups
  • Computer Groups which have been configured in KeyConfigure.
  • This table does not contain entries for groups which are defined by external authorization methods.
KSComputers
  • Computers which have connected to the KeyServer at some point.
KSLicensedComputers
  • KSLicensedComputers is a cross table to associate computers and licenses.
  • It keeps track of each computer which has used a license.
  • Note that if the license is node locked, the number of entries for this license will be less than or equal to the license total.
  • If the license is a site wide or concurrent use license, there can be any number of entries for the license in this table, since it shows everywhere it has been used.
KSLicenses
  • Licenses. This basic concept is similar to what used to be Suite controls.
KSPools
  • For custom licenses, gives information about groups which can use the license.
KSProgramFolders
  • This table holds entries for the program folders which can be defined in KeyConfigure.
  • Note that a program can only belong to a single folder.
KSProgramLicenses
  • Associates licenses with the programs they control.
KSPrograms
  • All known programs.
KSServers
  • Table containing one entry for every KeyServer.
  • When connecting directly to a KeyServer, this table will have only one entry.
  • When exporting data from multiple KeyServers to a single SQL server, this table will have multiple entries.
KSTermAction
  • Provides long and short string representations of the KSPrograms.programAction constants.
KSTermCPUType
  • Provides long and short string representations of the KSComputers.computerCPUType constants.
KSTermEvent
  • Provides long and short string representations of the KSUsage.usageEvent constants.
KSTermLicType
  • Provides long and short string representations of the KSLicenses.licenseType constants.
KSTermOSType
  • Provides long and short string representations of the KSComputers.computerOSType constants.
KSTermPlatform
  • Provides long and short string representations of the KSComputers.computerPlatform constants.
KSTermProtocol
  • Provides long and short string representations of the KSComputers.computerProtocol constants.
KSTermReason
  • Provides long and short string representations of the KSUsage.usageReason constants.
KSUsage
  • Usage records which track both program and license usage, as well as client logins, logouts, audits, etc.
KSUsers
  • This table holds the current users of KeyServer (The same ones that are shown in the users window of KeyConfigure).
  • Note that it is probably not too useful for reports, since it changes so quickly.
  • This table is not exported, since it changes so quickly.
KSDbex
  • This table does not exist internally in KeyServer.
  • It is only used in exported databases.
  • It keeps track of the last time that each table was exported, so that exports can be incremental.


The following tables describe the columns contained in each table. KeyServer's internal databases (accesible through ksODBC) contain the same columns as exported data. However, the data types might be slightly different. The types listed below are correct for exported data. If you need to create the tables by hand before exporting data from KeyServer, you should use the types contained in the tables below.


KSAudits

auditID VARCHAR(128) Unique ID for this audit entry.
auditComputerID VARCHAR(64) Part of the auditID. The computer which this audit came from. References the computerID field of KSComputers, and can be used to join the two tables.
auditProgramID VARCHAR(48) Part of the auditID. The ID of the program for this entry. References the programID field of KSPrograms, and can be used to join the two tables.
auditLicenseID VARCHAR(32) If the program is a keyed program, this refers to the licenseID field of KSLicenses.
auditCount INT The number of copies of this program that were found on the computer.
auditFirstSeen DATETIME Date when the program was first seen on this computer.
auditLastSeen DATETIME Date when the program was last seen on this computer, if a more recent audit did not find the program. This is only filled in if auditCount is zero. Otherwise it is null.
auditLastUsed DATETIME Date when the program was last used on this computer.
auditPath VARCHAR(255) Reserved for future use.

KSComputerDivisions (new in KS 6.0.0.9)

divisionID INT Unique ID for this division.
divisionServerID INT The ID of the server which created this entry. If you are getting data directly from KeyServer, this will be 0 for every entry. If you export data from more than one KeyServer to a single external database, there will be multiple values.
divisionName VARCHAR(64) The name of the division.
divisionColor INT The color which KeyConfigure uses to display the division. When displayed as hex, the first two digits are the Blue value, the next two are the Green value, the final two are the Red value.
divisionNotes VARCHAR(255) Notes for the division. Can't be set in KeyConfigure.
divisionFlags INT Ignore.

KSComputerGroupMembers

memberID VARCHAR(96) Unique ID for this association between one computer and one group.
memberServerID INT The ID of the server which created this entry. If you are getting data directly from KeyServer, this will be 0 for every entry. If you export data from more than one KeyServer to a single external database, there will be multiple values.
memberComputerID VARCHAR(64) Part of the memberID. References the computerID field of KSComputers, and can be used to join the two tables.
memberGroupID VARCHAR(64) Part of the memberID. References the groupID field of KSGroups, and can be used to join the two tables.
memberLastUsed DATETIME The last time the computer used membership in the group in order to use a license.
memberAcknowledged INT Ignore.

KSComputerGroups

groupID VARCHAR(64) Unique ID for this computer group.
groupServerID INT The ID of the server which created this entry. If you are getting data directly from KeyServer, this will be 0 for every entry. If you export data from more than one KeyServer to a single external database, there will be multiple values.
groupNumMembers INT Number of members currently in the group.
groupMaxMembers INT Ignore.
groupNotes VARCHAR(255) Notes for the group, as defined in KeyConfigure.
groupFlags INT Ignore.

KSComputers

computerID VARCHAR(64) Unique ID for this computer.
computerServerID INT The ID of the server which created this entry. If you are getting data directly from KeyServer, this will be 0 for every entry. If you export data from more than one KeyServer to a single external database, there will be multiple values.
computerName VARCHAR(64) Name of the computer.
computerUserName VARCHAR(64) Name of the user most recently logged into the computer.
computerPlatform INT A code which represents the platform type of the computer. Use KSTermPlatform to convert these constants to string representations.
computerProtocol INT Specifies how the computer connects to KeyServer. Use the KSTermProtocol table to look up these constants.
computerAddress VARCHAR(32) The IP address of the computer, as a string.
computerOSType INT Code which specifies the OS type. Use KSTermOSType to convert these constants to string representations.
computerOSVersion INT Number which specifies the OS version. first byte is major version, second is minor version, last two bytes is build number.
  • 9.21 would be 09020001 in hex (or 151126017 in decimal)
  • 5.1 build 26000 would be 05010A28 in hex (or 83954216 in decimal).
computerOSRelease INT Number which specifies the release number of the OS.
  • On Macintosh, this field stores the revision version of the OS. Usually this field will be either 0 or hex 01008000 (decimal 16809984), which means revision 1.
  • On Windows, this field stores the SP number in the third byte. For example, SP2 would be 00020000 in hex (or 131072 in decimal).
computerCPUType INT Code which specifies the type of CPU in the computer. Use KSTermCPUType to convert these constants to string representations.
computerCPUCount INT (new in KS 6.0.2.3)
How many CPUs the computer has. Computers with KeyAccess 6.0.2.2 or earlier will always show 1 CPU. Computers with KeyAccess 6.0.2.3 will show the correct number of CPUs.
computerCPUClock INT Clock speed of the CPU, in Mhz. For machines with multiple CPUs, this is the clock speed of each CPU.
computerRAMSize INT Kilobytes of RAM on the computer.
computerDiskSize INT Size of all local disks combined, in Kilobytes.
computerFreeSpace INT Kilobytes of free space on disk.
computerMACAddress VARCHAR(64) MAC address of the primary NIC.
computerSite VARCHAR(64) Reserved for future use.
computerOEMSerial VARCHAR(64) Manufacturer's serial number.
computerOSSerial VARCHAR(64) Serial number of the OS, if it is available.
computerLastLogin DATETIME Last date and time at which this computer logged in to the KeyServer.
computerLastAudit DATETIME Last date and time at which this computer was audited.
computerBaseAudit DATETIME (new in KS 6.0.0.9)
Date and time of this computer's Baseline Audit.
computerClientVersion VARCHAR(16) Version number of KeyAccess on the computer, as a string.
computerUserSession INT This refers to the user session number on KeyServer. Essentially useless for reports.
computerAcknowledged INT (new in KS 6.0.0.9)
A boolean representing whether or not the computer has been acknowledged (or moved to a different division) in KeyConfigure by an administrator. If this value is false, the computer is part of the “Discovered” division.
computerAllowed INT Corresponds to "Allow Connections From This Computer" checkbox in computer details window of KeyConfigure.
computerAudit INT Boolean which indicates whether this computer is set to audit automatically.
computerPrimaryGroup VARCHAR(64) This column was never used, and was removed in 6.0.0.9!
computerDivisionID INT (new in KS 6.0.0.9)
ID of the division associated with this computer. References the divisionID field of KSComputerDivisions, and can be used to join the two tables.
computerAssetID VARCHAR(64) Asset ID, as defined in KeyConfigure in Asset pane of Computer Details window.
computerLocation VARCHAR(64) Location, as defined in KeyConfigure in Asset pane of Computer Details window.
computerConfirmed DATETIME Date when computer was confirmed, as defined in KeyConfigure in Asset pane of Computer Details window.
computerConfirmedBy VARCHAR(64) Who confirmed the computer, as defined in KeyConfigure in Asset pane of Computer Details window.
computerNotes VARCHAR(255) Notes for the computer, as defined in KeyConfigure in Asset pane of Computer Details window.
computerFlags INT Ignore.

KSLicensedComputers

licenseeID VARCHAR(96) Unique ID for this association between one computer and one group.
licenseeServerID INT The ID of the server which created this entry. If you are getting data directly from KeyServer, this will be 0 for every entry. If you export data from more than one KeyServer to a single external database, there will be multiple values.
licenseeComputerID VARCHAR(64) Part of the licenseeID. References the computerID field of KSComputers, and can be used to join the two tables.
licenseeLicenseID VARCHAR(32) Part of the licenseeID. References the licenseID field of KSLicenses, and can be used to join the two tables.
licenseeAcknowledged INT (new in KS 6.0.2.3)
A boolean representing whether or not the computer has been acknowledged as a user of the license in KeyConfigure by an administrator. If this value is false, the computer shows up as a pink item in the Computer Node List window for the license.
licenseeLastUsed DATETIME When the computer last used the license.

KSLicenses

licenseID VARCHAR(32) Unique ID for this license.
licenseServerID INT The ID of the server which created this entry. If you are getting data directly from KeyServer, this will be 0 for every entry. If you export data from more than one KeyServer to a single external database, there will be multiple values.
licenseName VARCHAR(64) Name of the license.
licenseTotal INT Total number of licenses enabled.
licenseType INT License type, as configured in KeyConfigure Use KSTermLicType to see which number refers to each license type.
licenseNodeLock INT True if the license is node locked and not auto-add, false otherwise.
licenseExpiration DATETIME License Expiration Date.
licenseCurrUsers INT Number of clients currently using the license.
internal only
licenseCurrWaiting INT Number of clients currently waiting for the license.
internal only
licenseNotes VARCHAR(255) Notes for the license, as configured in KeyConfigure.

KSPools

poolID VARCHAR(32) Unique ID for this pool.
poolServerID INT The ID of the server which created this entry. If you are getting data directly from KeyServer, this will be 0 for every entry. If you export data from more than one KeyServer to a single external database, there will be multiple values.
poolLicenseID VARCHAR(32) ID of the license which this pool belongs to. References the licenseID field of KSLicenses, and can be used to join the two tables.
poolIndex INT Index of this pool within pools for the license.
poolGroupID VARCHAR(64) ID of the group associated with this pool. References the groupID field of KSGroups, and can be used to join the two tables.
poolLimit INT License limit for this pool.
poolTimeout INT Timeout for this pool.
poolNetwork INT Corresponds to "Can be used on network" checkbox in KeyConfigure.
poolPortable INT Corresponds to "Can be used as Portable Key" checkbox in KeyConfigure.
poolInUse INT Number of licenses in use from this pool.
poolFlags INT Ignore.

KSProgramFolders

folderID INT Unique ID for this program folder.
folderServerID INT The ID of the server which created this entry. If you are getting data directly from KeyServer, this will be 0 for every entry. If you export data from more than one KeyServer to a single external database, there will be multiple values.
folderAction INT default action for the folder, using the same codes as programAction
folderAudit INT Whether to include programs in this folder in audits.
folderColor INT (new in KS 6.0.0.9)
The color which KeyConfigure uses to display the folder. When displayed as hex, the first two digits are the Blue value, the next two are the Green value, the final two are the Red value.
folderName VARCHAR(64) The name of the folder.
folderNotes VARCHAR(255) Notes for the folder. Can't be set in KeyConfigure.
folderFlags INT Ignore.

KSProgramLicenses

proglicID VARCHAR(32) Unique ID for this entry in KSProgramLicenses.
proglicServerID INT The ID of the server which created this entry. If you are getting data directly from KeyServer, this will be 0 for every entry. If you export data from more than one KeyServer to a single external database, there will be multiple values.
proglicControlID VARCHAR(32) Part of the proglicID. References the programControlID field of KSPrograms, and can be used to join the two tables.
proglicIndex INT Part of the proglicID. This field makes the ID unique, since more than one entry may have the same control ID and license ID.
proglicLicenseID VARCHAR(32) Part of the proglicID. References the licenseID field of KSLicenses, and can be used to join the two tables.

KSPrograms

programID VARCHAR(48) Unique ID for this row of KSPrograms. Note this is different for every version. If there is a single entry in the programs window of KeyConfigure, but there are 3 versions in the expandable name in the Actions pane of the program details window, there are then 3 rows in KSPrograms, each with a different programID, but the same programVariant.
programServerID INT The ID of the server which created this entry. If you are getting data directly from KeyServer, this will be 0 for every entry. If you export data from more than one KeyServer to a single external database, there will be multiple values.
programVariant VARCHAR(48) This is the programID, masked to some degree. A single value of programVariant corresponds to a single item in KeyConfigure's programs window.
programCharStamp VARCHAR(16) The character stamp of the program.
programName VARCHAR(64) The name of the program.
programVariantName VARCHAR(64) The name of the item in KeyConfigure's programs window under which this specific version of the program appears.
programVariantVersion VARCHAR(64) A string representation of the common part of the version, for all versions which KeyConfigure considers a single "program" (i.e. entry in the programs window).
programAIVersion VARCHAR(64) Alternative format of programVariantVersion.
programVersionMask INT A number representation of the version mask, which has been set in KeyConfigure. This is used to compute the programVariant from the programID.
programVersion VARCHAR(32) The version number of the program, as text.
programPlatform INT What platform the program runs on. Use KSTermPlatform to convert these constants to string representations.
programPublisher VARCHAR(64) The publisher of the program, if that information is known.
programPath VARCHAR(255) The path of the first copy of the program which was ever seen.
programFileName VARCHAR(64) The file name of the first copy of the program which was ever seen.
programAction INT This corresponds to the action which can be set in KeyConfigure. Use KSTermAction to convert these constants to string representations.
programAcknowledged INT A boolean representing whether or not the program has been acknowledged in KeyConfigure by an administrator. If this value is false, the program shows up as a pink item in the KeyConfigure programs window.
programAllowLaunch INT Corresponds to the "Allow launch when KeyServer not available" checkbox in the program details window of KeyConfigure.
programLogOffline INT Whether usage of this program is logged when KeyServer is unavailable.
programAudit INT Whether to include this program in software audits.
programControlID VARCHAR(32) The "Control" which is associated with this program. Only set for controlled programs. This attribute is internal to KeyServer. For reports, this field can be linked from KSProgramlicenses.proglicControlID to determine which licenses control which programs.
programFolderID INT Indicates which folder the program belongs to, if any. References the folderID field of KSProgramFolders, and can be used to join the two tables.
programDiscovered DATETIME The date on which this program was discovered, either by an audit, or by a launch of the program.
programCreateDate DATETIME The creation date of the program.
programUserName VARCHAR(64) The name of the KeyServer user of the machine on which the program was first seen.
programComputerID VARCHAR(64) The ID of the computer on which this program was first seen. References the computerID field of KSComputers, and can be used to join the two tables.
programNotes VARCHAR(255) Notes for the program, if they have been typed in the Notes pane of the program details window of KeyConfigure.
programFlags INT Ignore.

KSServers

serverID INT Unique ID for this entry in KSServers. When connected directly to a KeyServer, the one entry in this table will have serverID 0.
serverType INT 0 for a server, 1 for a shadow.
serverName VARCHAR(64) The AppleTalk/IPX name of the server.
serverComputer VARCHAR(64) The name of the computer on which the KeyServer is running.
serverSerialNumber VARCHAR(24) The displayable serial number.
serverVersion VARCHAR(16) The version of the server.
serverGMTOffset INT Offset from GMT in seconds.
serverSeats INT Number of clients supported.

KSTerm*

Every term table has the following three fields:

termID INT The unique ID for this term entry. This is the field to link to from whatever field needs to be interpreted.
termValue VARCHAR(255) A long string describing the code.
termAbbreviation VARCHAR(32) A short string describing the code.

KSUsage

usageID VARCHAR(128) Unique ID for this entry in KSUsage.
usageWhen DATETIME Date and time when this usage event occured. This value is part of the usageID.
usageEnum INT This distinguishes between two or more usage events during the same second. This value is part of the usageID.
usageServerID INT The ID of the server which created this entry. If you are getting data directly from KeyServer, this will be 0 for every entry. If you export data from more than one KeyServer to a single external database, there will be multiple values.
usageServerType INT Whether this event was logged by the KeyServer (value is 0), or by a shadow (value is 1).
usageProgramID VARCHAR(48) If this event involved a program, the ID for the program. References the programID field of KSPrograms, and can be used to join the two tables.
usageLicenseID VARCHAR(32) If this event involved a license, the ID of the license. References the licenseID field of KSLicenses, and can be used to join the two tables.
usageComputerID VARCHAR(64) The ID of the computer which generated this usage event. References the computerID field of KSComputers, and can be used to join the two tables.
usageExpansion VARCHAR(64) Reserved for future use - ignore.
usageUser VARCHAR(64) The name of the user on the computer which generated this usage event.
usageAddress VARCHAR(32) The IP address of the machine at the time of this usage action. Note this could change from event to event for the same computer if you use DHCP.
usageGroup VARCHAR(64) Name of the group which allowed the license to be used. This may be equal to a value of KSComputerGroups.groupID, but it may not.
usageEvent INT What type of event occured. Use KSTermEvent to convert these constants to string representations.
usageReason INT Extra information on what caused the event. Use KSTermReason to convert these constants to string representations.
usageTime INT How long a certain state was in affect for. Only meaningful for "end" events, like license return, program quit, user removed from wait queue, etc.
usageOtherTime DATETIME For "end" type events (program quit, license return, user logoff, server shutdown), this field contains the date and time when the corresponding "start" event occured. Equal to usageWhen - usageTime for these events.

KSUsers

userID internal only Unique ID for this user. (unique forever, only valid as long as user is logged in)
userSession internal only Attribute which is used internally by KeyServer. It is essentially useless for reports.
userName internal only The name of the user.
userComputerID internal only The computer that the user is logged in on. References the computerID field of KSComputers, and can be used to join the two tables.
userComputerName internal only The name of the computer that the user is logged in on.
userClientVersion internal only The KeyAccess client version which the user is connected with.
userProtocol internal only Specifies how the user is connected to KeyServer. Use KSTermProtocol to convert these constants to string representations.
userAddress internal only TCP address of the computer that the user is logged in on.
userZone internal only If connected through AppleTalk, the zone the user is in.
userLicenseCount internal only The number of licenses that the user has out.
userReservationCount internal only The number of licenses that the user is waiting for.
userWaitingID internal only Attribute which is used internally by KeyServer. It is essentially useless for reports.

KSDbex (external only)

dbexTable VARCHAR(32) Name of one of the other tables (e.g. "KSPrograms"). This is part of the key for this table.
dbexServerID INT The ID of the server which created this entry. If you are getting data directly from KeyServer, this will be 0 for every entry. If you export data from more than one KeyServer to a single external database, there will be multiple values. This is part of the key for this table.
dbexLast INT Number which represents the last time the table specified by dbexTable was exported by the server of ID dbexServerID. This number is updated after each export.

Help Index 2007.02.05

Related Topics

Exporting

Help Index
?