Ronald Bradford wrote:
Hi All,

I have been working initially on the Authentication models that are
currently being offered for Drizzle, PAM, LDAP(via PAM), Http Auth. Thanks
to Eric for helping me fix one of three identified bugs there.

What I am unclear of is the policy or thought for user permissions within
Drizzle after user authentication.  I'd consider this an important packaging
requirement but I am unclear if anything is defined for Bell.  I will give
you a clear example.

How do you plan to restrict users to not creating or altering objects for
example?
How do you plan to restrict users to read only verses read write?

OK, so the main things that needs to be determined is *when* an access control plugin/module should be notified and *what* should be passed in the API.

Put concretely, the following questions need to be addressed:

1) What should Drizzle pass the access control module?

Options:

a) The query string itself?
b) A "parse tree", similar to the Lex class?
c) A Statement class corresponding to the post-parse Statement class generated?

2) When should the access control be notified?

a) Before parsing?
b) After parsing?
b) During parsing? For instance, once the parser determines it is in a statement which will require write access to table X, should the parser call an API, passing in the type of Statement and the table name to the access control module?

3) How does a module signal to Drizzle that it needs to add to the SQL syntax supported by Drizzle? For instance, if the access control module implemented the GRANTS system of MySQL, how does the module, on module startup, add tokens and heuristics to the parser for handling statements such as GRANT ALL ON *.* TO 'user'@'localhost' IDENTIFIED BY ...

Padraig's work on the executioner has gotten us further towards parser pluggability, but we're still a ways off. :(

With answers to the above questions, I can work on providing the API plumbing that would make writing a generic access control module that would look like a MySQL GRANTS system pretty easy...

-jay

_______________________________________________
Mailing list: https://launchpad.net/~drizzle-discuss
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help   : https://help.launchpad.net/ListHelp

Reply via email to