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
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.
|
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.
|
|
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.
|
|
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. |
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|