Subject | Re: FB security - Roles vs Groups |
---|---|
Author | johnson_dave2003 |
Post date | 2005-08-17T01:19:14Z |
All of these objections fail to recognize that an LDAP like model can
represent the crude security model of SQL92. That level of security
represents a lowest denominator that in practice amounts to no
security, but as a standard it can (must) be supported.
Given that the ROLE must be represented as as set of references, not a
single entity reference, the support of the "if ROLE = 'BOSS'" type
clauses can be maintained through a number of mechanisms.
Mechanism 1:
* During database migration, recognize this construct and replace it
with the operation "if ROLE contains 'BOSS'".
Mechanism 2:
* provide a configuration switch at startup that says "use SQL92
not-quite security" or "use some real security". In the case of SQL92
security, only check the first entry of the ROLE set.
Mechanism 3:
* support both approaches, with the existence of an LDAP Like security
(or any installed security PAM) overriding SQL92 security.
if (! securityPAMIsInstalled())
{
authorizeViaSQL92 ()
}
else
{
authorizeViaInstalledSecurityPAM()
}
represent the crude security model of SQL92. That level of security
represents a lowest denominator that in practice amounts to no
security, but as a standard it can (must) be supported.
Given that the ROLE must be represented as as set of references, not a
single entity reference, the support of the "if ROLE = 'BOSS'" type
clauses can be maintained through a number of mechanisms.
Mechanism 1:
* During database migration, recognize this construct and replace it
with the operation "if ROLE contains 'BOSS'".
Mechanism 2:
* provide a configuration switch at startup that says "use SQL92
not-quite security" or "use some real security". In the case of SQL92
security, only check the first entry of the ROLE set.
Mechanism 3:
* support both approaches, with the existence of an LDAP Like security
(or any installed security PAM) overriding SQL92 security.
if (! securityPAMIsInstalled())
{
authorizeViaSQL92 ()
}
else
{
authorizeViaInstalledSecurityPAM()
}