I know what a key is, I know what opaque is in other contexts - but what is an opaque key in a database context?
+8
A:
It means it has no real meaning beyond being used to look up records - it should just be treated as arbitrary data, for no purpose other than keying. This almost always applies to GUIDs, for example. Compare this with situations where the primary key might be a social security number.
These are also known as surrogate (opaque) vs natural keys.
Jon Skeet
2009-05-01 20:01:02
+2
A:
Something like a GUID that doesn't tell you anything about unrelated rows or external information, as opposed to things like serial PKs and user-significant information like email addresses that tell you something beyond 'this is a key'.
chaos
2009-05-01 20:01:05
Expanding a little on what I mean about serial PKs: if you know one GUID that a system uses, you don't know any others, whereas if you know one serial PK, you know all of them, or as near as makes no difference. So that's one hurdle a potential attacker doesn't have to jump.
chaos
2009-05-01 20:13:06
+1
A:
Here's a little bit of the master on that subject. Much, much more in his books. :)
JP Alioto
2009-05-01 20:07:02