On 3/20/06, Oystein Grovlen - Sun Norway <[EMAIL PROTECTED]> wrote: > Satheesh Bandaram wrote: > > > > Oystein Grovlen - Sun Norway wrote: > > > >> Satheesh Bandaram wrote: > >> > >> At some time in the future when GRANT/REVOKE support is more complete, > >> would it be possible to have some way to turn on SQL authorization > >> automatically when GRANT/REVOKE is used for the first time? I think > >> that could improve ease of use without breaking backward compatibility. > > > > Derby could, but it would break backward compatibility... Currently all > > users with 'fullAccess' mode (for defaultConnectionMode) can read/write > > to any table in any schema. Switching to SQL authorization would mean > > they would only be able to access their objects by default, so many > > applications would see a break in functionality. Users have to change > > their applications anyway, to explicitly grant privileges, so why not > > make them set 'sqlAuthorization' flag also? > > > > I am not quite sure you understood what I meant. I do not suggest that > we should make SQL authorization default. What I was thinking of was > turning it on automatically when someone attempt to use it. If one is > only running existing applications one should not be affected since they > will not use GRANT/REVOKE. My itch is to make it easy to start using > Derby for people that based on experiences with other database systems > will assume that GRANT/REVOKE is available without having configure the > system. >
Grant or Revoke statement would have to succeed to enable sqlStandard authorization mode automatically, with someone having enough privilege to issue a successful Grant/Revoke operation in the first place - at the same time, implictly and silently setting the authorization mode to be sqlAuthorization the first time a Grant OP is invoked could be a problem if the user issuing it is not the/a derby system administrator type of role (unless he/she does it on his/her own objects) and ending-up turning on sqlAuthorization mode. Some admin may not want to see this happen. Am not understanding the following "If one is only running existing applications one should not be affected since they will not use GRANT/REVOKE" - are you suggesting an authorization mode at the connection/session level? It is set at the database level so you should not have mixed users authorizing with legacy versus others using sqlAuthorization...I may have misunderstood what you meant... Actually, an important aspect of Cloudscape/Derby has been to make it easy for developers to use the database and not having to worry about issuing grant/revoke statements early in the learning cycle (as an example and this is the same for authentication) - Maybe a way to address your itch/issue (if not already done) could be to print a Warning message to the user to inform him/her that he/she should contact the database administrator (if a different person) to enable/switch to sqlStandard mode - just a thought. --francois
