Re: [jira] Commented: (DERBY-464) Enhance Derby by adding grant/revoke support. Grant/Revoke provide finner level of privileges than currently provided by Derby that is especially useful in network co

2006-07-25 Thread Kristian Waagan

Daniel John Debrunner (JIRA) wrote:
[ http://issues.apache.org/jira/browse/DERBY-464?page=comments#action_12423202 ] 

Daniel John Debrunner commented on DERBY-464:

-

I would say one definition of sub-task is that the main task is not complete 
until all of the sub-tasks are.
Though I think sometimes sub-tasks are added when a better choice would be to 
add separate tasks.
And the situation is not helped by Jira not allowing sub-tasks to moved once 
created.


Have I missed something, or can you use the 'Move this sub-task' to do that?
I haven't tried it, but it seems to be possible to change the parent task.


--
Kristian




[ snip ]


Re: [jira] Commented: (DERBY-464) Enhance Derby by adding grant/revoke support. Grant/Revoke provide finner level of privileges than currently provided by Derby that is especially useful in network co

2006-07-25 Thread Daniel John Debrunner
Kristian Waagan wrote:

 Daniel John Debrunner (JIRA) wrote:
 
 [
 http://issues.apache.org/jira/browse/DERBY-464?page=comments#action_12423202
 ] Daniel John Debrunner commented on DERBY-464:
 -

 I would say one definition of sub-task is that the main task is not
 complete until all of the sub-tasks are.
 Though I think sometimes sub-tasks are added when a better choice
 would be to add separate tasks.
 And the situation is not helped by Jira not allowing sub-tasks to
 moved once created.
 
 
 Have I missed something, or can you use the 'Move this sub-task' to do
 that?
 I haven't tried it, but it seems to be possible to change the parent task.

I must have missed that, I know I ran into problems when I wanted to
change the type of a sub-task to be its own issue. I didn't think about
changing the parent to a different (new) parent.

Thanks,
Dan.



Re: [jira] Commented: (DERBY-464) Enhance Derby by adding grant/revoke support. Grant/Revoke provide finner level of privileges than currently provided by Derby that is especially useful in network co

2006-07-19 Thread Daniel John Debrunner
Yip Ng (JIRA) wrote:

 
   My name is Yip Ng and I would like to contribute to the Apache Derby 
 project. 

Welcome to the project Yip. I just tried to make the information for new
devevlopers easier to navigate on the wiki, at

http://wiki.apache.org/db-derby/DerbyDev

I'd appreciate any feedback on it.

[grant/revoke tests  bugs snipped]

It would be great if you could add these bugs as Jira issues separate to
DERBY-464 and link them to DERBY-464.

http://db.apache.org/derby/DerbyBugGuidelines.html

Thanks,
Dan.



Re: [jira] Commented: (DERBY-464) Enhance Derby by adding grant/revoke support. Grant/Revoke provide finner level of privileges than currently provided by Derby that is especially useful in network co

2006-07-19 Thread Yip Ng
Thanks Dan for the informative links.  I'll definitely
take a look at them to start my Derby journey.  =)

I opened DERBY-1538 to track the issue I have found
but
since I don't have developer access to JIRA, I can't
link it to DERBY-464...


--- Daniel John Debrunner [EMAIL PROTECTED] wrote:

 Yip Ng (JIRA) wrote:
 
  
My name is Yip Ng and I would like to contribute
 to the Apache Derby project. 
 
 Welcome to the project Yip. I just tried to make the
 information for new
 devevlopers easier to navigate on the wiki, at
 
 http://wiki.apache.org/db-derby/DerbyDev
 
 I'd appreciate any feedback on it.
 
 [grant/revoke tests  bugs snipped]
 
 It would be great if you could add these bugs as
 Jira issues separate to
 DERBY-464 and link them to DERBY-464.
 
 http://db.apache.org/derby/DerbyBugGuidelines.html
 
 Thanks,
 Dan.
 
 


__
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 


Re: [jira] Commented: (DERBY-464) Enhance Derby by adding grant/revoke support. Grant/Revoke provide finner level of privileges than currently provided by Derby that is especially useful in network co

2006-02-16 Thread Daniel John Debrunner
Satheesh Bandaram (JIRA) wrote:


 All implement check() interface that is used to invoke permission checking 
 for that access descriptor. Access descriptors already know what they need to 
 check for and are passed current user authorizationId.

Since g/r is a language issue, it seems like the check() method should
take the LCC and not the transaction controller. Then the authorization
id would be available in the LCC and not have the potential to be
different. Or can it be different, again comments needed here.

 The equals() method is used to check if an access descriptor is already 
 created for the specific access. For example, a query may have multiple 
 references to same table. No need to create multiple access descriptors for 
 the same table for the same kind of access. This becomes more important as 
 each and every column referenced may try to add an access descriptor for the 
 table in question.
 
 I will add these details to the design part of the spec.

And to the java code, right?

Dan.




Re: [jira] Commented: (DERBY-464) Enhance Derby by adding grant/revoke support. Grant/Revoke provide finner level of privileges than currently provided by Derby that is especially useful in network co

2006-02-16 Thread Satheesh Bandaram




OK... I will see if check() method interface can be changed..

Satheesh

Daniel John Debrunner wrote:

  Satheesh Bandaram (JIRA) wrote:


  
  
All implement check() interface that is used to invoke permission checking for that access descriptor. Access descriptors already know what they need to check for and are passed current user authorizationId.

  
  
Since g/r is a language issue, it seems like the check() method should
take the LCC and not the transaction controller. Then the authorization
id would be available in the LCC and not have the potential to be
different. Or can it be different, again comments needed here.

  
  
The equals() method is used to check if an access descriptor is already created for the specific access. For example, a query may have multiple references to same table. No need to create multiple access descriptors for the same table for the same kind of access. This becomes more important as each and every column referenced may try to add an access descriptor for the table in question.

I will add these details to the design part of the spec.

  
  
And to the java code, right?

Dan.




  






Re: [jira] Commented: (DERBY-464) Enhance Derby by adding grant/revoke support. Grant/Revoke provide finner level of privileges than currently provided by Derby that is especially useful in network co

2005-12-16 Thread Satheesh Bandaram




Hi Francois,

I will update functional specification with system table schema. I will
also add a high level design section there with some details. I am
little pressed for time right now, but will get this out next week.
(happens to be my off week, but open source world never sleeps, right?)

Satheesh

Francois Orsini wrote:
Hi Satheesh,
  
I'm reviewing the part I changes you checked-in - there is a lot of
changes and it is somewhat tedious to understand some of the decisions
that have been made at the implementation level - not saying anything
is wrong - it is just hard to follow certain paths without a minimum of
high-level technical details about the implementation (i.e. design
specs) and mostly because of the amount of changes - there are classes
without headers, which makes it difficult to understand the purpose of
a class - sure, one can always spend a long time trying to understand
things but I think for patches with such amount of changes, some
high-level design details would be appreciated by the reviewers...I
know you intended to post details about the system catalogs but right
now one has to review the changes without a lot of details besides the
functional specs...a 1-2 pager high-level implementation details would
not just help reviewers to do a better appreciation of the changes but
also incentivize more reviewers to look at the changes...
  
Btw, these changes cross a few of the Derby subsystems and am hoping
someone can review the query tree and nodes generation (compiler)
stuffs...
  
Thanks,
  
--francois
  
  On 12/11/05, Satheesh Bandaram (JIRA) derby-dev@db.apache.org
wrote:
  [
http://issues.apache.org/jira/browse/DERBY-464?page=comments#action_12360186
]

Satheesh Bandaram commented on DERBY-464:

-

I
have submitted Grant and Revoke, Part I to trunk. Let me know if anyone
would like to join developing remaining parts. It is possible to
coordinate development using a Wiki.

This Phase I implements:

* Grant/Revoke DDL parsing and execution
*
Addition of several new system tables to hold the system metadata. I
will update my spec to include detailed schema for new system tables,
so that they can be included in 10.2 documentation.
*Enhancing the syntax for routine creation to include
external-security clause
*Very
simple tests to cover only the DDL. I would be expanding on the testing
in the later submissions, including a JUnit test suite.
* Grant/Revoke DDL is only supported if
derby.database.defaultConnectionMode property is set to 'sqlStandard'.

Pending items from Phase I:

 1. dblook needs to be enhanced to emit DDL for grant statements.

 2. Enhanced JUnit based test suite with many more tests.

3. Some implementation improvements possible with the current patch. It
should be possible to combine several new nodes being added, to reduce
number of nodes and hence foot print. Also, the patch adds a Java
object to new system tables. While Derby already has some java objects
in its system tables, I think, we should discourage adding new java
objects to catalogs. Since Java objects can't be used in SQL easily,
this makes metadata harder to use. I will explore rewriting SYSCOLPERMS
and SYSREQUIREDPERM to not use FormattableBitSet type. This can be done
by having multiple entries in these catalogs for each column referenced.
 4. Updating specification to include schema for new system tables.
 5. Need to change how property defaultConnectionMode is set and/or
used.

 6. Enhance system tables to store external security clause
specification.

I
am also working on Grant and Revoke, Phase II. This will implement
permission checking for DML statement. Hopefully I will have something
to submit by end of January to complete Phase I and Phase II.

Also need to support upgrade and migration of legacy databases and
update JDBC metadata.

Let me know if I missed anything else.



Enhance Derby by adding grant/revoke support. Grant/Revoke provide
finner level of privileges than currently provided by Derby that is
especially useful in network configurations.

---


Key: DERBY-464
URL: http://issues.apache.org/jira/browse/DERBY-464
Project: Derby
 Type: New Feature

 Components: SQL
 Versions: 10.0.2.1, 10.1.1.0, 10.2.0.0
Environment: generic
 Reporter: Satheesh Bandaram

 Assignee: Satheesh Bandaram
Attachments: grant.html, grantRevoke.patch.Dec5,
grantRevoke.stat.Dec5


Derby currently provides a very simple permissions scheme, which is
quite suitable for an embedded database system. End users of embedded
Derby do not see Derby directly; they talk to a application that embeds
Derby. So Derby left most of the access control work to the
application. Under this scheme, Derby limits access on a per database
or per 

Re: [jira] Commented: (DERBY-464) Enhance Derby by adding grant/revoke support. Grant/Revoke provide finner level of privileges than currently provided by Derby that is especially useful in network co

2005-12-16 Thread Francois Orsini
Thanks Satheesh - much appreciated ;)On 12/16/05, Satheesh Bandaram [EMAIL PROTECTED] wrote:



  
  


Hi Francois,

I will update functional specification with system table schema. I will
also add a high level design section there with some details. I am
little pressed for time right now, but will get this out next week.
(happens to be my off week, but open source world never sleeps, right?)

Satheesh

Francois Orsini wrote:
Hi Satheesh,
  
I'm reviewing the part I changes you checked-in - there is a lot of
changes and it is somewhat tedious to understand some of the decisions
that have been made at the implementation level - not saying anything
is wrong - it is just hard to follow certain paths without a minimum of
high-level technical details about the implementation (i.e. design
specs) and mostly because of the amount of changes - there are classes
without headers, which makes it difficult to understand the purpose of
a class - sure, one can always spend a long time trying to understand
things but I think for patches with such amount of changes, some
high-level design details would be appreciated by the reviewers...I
know you intended to post details about the system catalogs but right
now one has to review the changes without a lot of details besides the
functional specs...a 1-2 pager high-level implementation details would
not just help reviewers to do a better appreciation of the changes but
also incentivize more reviewers to look at the changes...
  
Btw, these changes cross a few of the Derby subsystems and am hoping
someone can review the query tree and nodes generation (compiler)
stuffs...
  
Thanks,
  
--francois
  
  On 12/11/05, Satheesh Bandaram (JIRA) derby-dev@db.apache.org

wrote:
  [
http://issues.apache.org/jira/browse/DERBY-464?page=comments#action_12360186

]

Satheesh Bandaram commented on DERBY-464:

-

I
have submitted Grant and Revoke, Part I to trunk. Let me know if anyone
would like to join developing remaining parts. It is possible to
coordinate development using a Wiki.

This Phase I implements:

* Grant/Revoke DDL parsing and execution
*
Addition of several new system tables to hold the system metadata. I
will update my spec to include detailed schema for new system tables,
so that they can be included in 10.2 documentation.
*Enhancing the syntax for routine creation to include
external-security clause
*Very
simple tests to cover only the DDL. I would be expanding on the testing
in the later submissions, including a JUnit test suite.
* Grant/Revoke DDL is only supported if
derby.database.defaultConnectionMode property is set to 'sqlStandard'.

Pending items from Phase I:

 1. dblook needs to be enhanced to emit DDL for grant statements.

 2. Enhanced JUnit based test suite with many more tests.

3. Some implementation improvements possible with the current patch. It
should be possible to combine several new nodes being added, to reduce
number of nodes and hence foot print. Also, the patch adds a Java
object to new system tables. While Derby already has some java objects
in its system tables, I think, we should discourage adding new java
objects to catalogs. Since Java objects can't be used in SQL easily,
this makes metadata harder to use. I will explore rewriting SYSCOLPERMS
and SYSREQUIREDPERM to not use FormattableBitSet type. This can be done
by having multiple entries in these catalogs for each column referenced.
 4. Updating specification to include schema for new system tables.
 5. Need to change how property defaultConnectionMode is set and/or
used.

 6. Enhance system tables to store external security clause
specification.

I
am also working on Grant and Revoke, Phase II. This will implement
permission checking for DML statement. Hopefully I will have something
to submit by end of January to complete Phase I and Phase II.

Also need to support upgrade and migration of legacy databases and
update JDBC metadata.

Let me know if I missed anything else.



Enhance Derby by adding grant/revoke support. Grant/Revoke provide
finner level of privileges than currently provided by Derby that is
especially useful in network configurations.

---


Key: DERBY-464
URL: http://issues.apache.org/jira/browse/DERBY-464
Project: Derby
 Type: New Feature

 Components: SQL
 Versions: 10.0.2.1, 
10.1.1.0, 10.2.0.0
Environment: generic
 Reporter: Satheesh Bandaram

 Assignee: Satheesh Bandaram
Attachments: grant.html, grantRevoke.patch.Dec5,
grantRevoke.stat.Dec5


Derby currently provides a very simple permissions scheme, which is
quite suitable for an embedded database system. End users of embedded
Derby do not see Derby directly; they talk to a application that embeds
Derby. So Derby left most of the 

Re: [jira] Commented: (DERBY-464) Enhance Derby by adding grant/revoke support. Grant/Revoke provide finner level of privileges than currently provided by Derby that is especially useful in network co

2005-12-15 Thread Francois Orsini
Hi Satheesh,

I'm reviewing the part I changes you checked-in - there is a lot of
changes and it is somewhat tedious to understand some of the decisions
that have been made at the implementation level - not saying anything
is wrong - it is just hard to follow certain paths without a minimum of
high-level technical details about the implementation (i.e. design
specs) and mostly because of the amount of changes - there are classes
without headers, which makes it difficult to understand the purpose of
a class - sure, one can always spend a long time trying to understand
things but I think for patches with such amount of changes, some
high-level design details would be appreciated by the reviewers...I
know you intended to post details about the system catalogs but right
now one has to review the changes without a lot of details besides the
functional specs...a 1-2 pager high-level implementation details would
not just help reviewers to do a better appreciation of the changes but
also incentivize more reviewers to look at the changes...

Btw, these changes cross a few of the Derby subsystems and am hoping
someone can review the query tree and nodes generation (compiler)
stuffs...

Thanks,

--francoisOn 12/11/05, Satheesh Bandaram (JIRA) derby-dev@db.apache.org wrote:
[ http://issues.apache.org/jira/browse/DERBY-464?page=comments#action_12360186 ]Satheesh Bandaram commented on DERBY-464:
-I
have submitted Grant and Revoke, Part I to trunk. Let me know if anyone
would like to join developing remaining parts. It is possible to
coordinate development using a Wiki.This Phase I implements:* Grant/Revoke DDL parsing and execution*
Addition of several new system tables to hold the system metadata. I
will update my spec to include detailed schema for new system tables,
so that they can be included in 10.2 documentation.*Enhancing the syntax for routine creation to include external-security clause*Very
simple tests to cover only the DDL. I would be expanding on the testing
in the later submissions, including a JUnit test suite.* Grant/Revoke DDL is only supported if derby.database.defaultConnectionMode property is set to 'sqlStandard'.Pending items from Phase I: 1. dblook needs to be enhanced to emit DDL for grant statements.
 2. Enhanced JUnit based test suite with many more tests.
3. Some implementation improvements possible with the current patch. It
should be possible to combine several new nodes being added, to reduce
number of nodes and hence foot print. Also, the patch adds a Java
object to new system tables. While Derby already has some java objects
in its system tables, I think, we should discourage adding new java
objects to catalogs. Since Java objects can't be used in SQL easily,
this makes metadata harder to use. I will explore rewriting SYSCOLPERMS
and SYSREQUIREDPERM to not use FormattableBitSet type. This can be done
by having multiple entries in these catalogs for each column referenced. 4. Updating specification to include schema for new system tables. 5. Need to change how property defaultConnectionMode is set and/or used.
 6. Enhance system tables to store external security clause specification.I
am also working on Grant and Revoke, Phase II. This will implement
permission checking for DML statement. Hopefully I will have something
to submit by end of January to complete Phase I and Phase II.Also need to support upgrade and migration of legacy databases and update JDBC metadata.Let me know if I missed anything else.
Enhance Derby by adding grant/revoke support. Grant/Revoke provide
finner level of privileges than currently provided by Derby that is
especially useful in network configurations. ---
Key: DERBY-464URL: http://issues.apache.org/jira/browse/DERBY-464Project: Derby Type: New Feature
 Components: SQL Versions: 10.0.2.1, 10.1.1.0, 10.2.0.0Environment: generic Reporter: Satheesh Bandaram
 Assignee: Satheesh BandaramAttachments: grant.html, grantRevoke.patch.Dec5, grantRevoke.stat.Dec5
Derby currently provides a very simple permissions scheme, which is
quite suitable for an embedded database system. End users of embedded
Derby do not see Derby directly; they talk to a application that embeds
Derby. So Derby left most of the access control work to the
application. Under this scheme, Derby limits access on a per database
or per system basis. A user can be granted full, read-only, or no
access. This is less suitable in a general purpose SQL server.
When end users or diverse applications can issue SQL commands directly
against the database, Derby must provide more precise mechanisms to
limit who can do what with the database. I propose to enhance
Derby by implementing a subset of grant/revoke capabilities as
specified by the SQL standard. I envision this work to involve the
following 

Re: [jira] Commented: (DERBY-464) Enhance Derby by adding grant/revoke support. Grant/Revoke provide finner level of privileges than currently provided by Derby that is especially useful in network co

2005-12-12 Thread David W. Van Couvering
Hi, Satheesh.  I am still learning the Apache Way, so I wanted to get 
some clarity on how things are generally done.


I know that committers have the merit and trust to commit what they 
want.  I had generally assumed, however, that a large change like this 
should be posted as a patch for review before being committed.


Is the approach that we do an svn diff of the change revision and we can 
send you comments, and you can make changes in response?


Thanks,

David

Satheesh Bandaram (JIRA) wrote:
[ http://issues.apache.org/jira/browse/DERBY-464?page=comments#action_12360186 ] 


Satheesh Bandaram commented on DERBY-464:
-

I have submitted Grant and Revoke, Part I to trunk. Let me know if anyone would like to join developing remaining parts. It is possible to coordinate development using a Wiki. 


This Phase I implements:

  * Grant/Revoke DDL parsing and execution
  * Addition of several new system tables to hold the system metadata. I will 
update my spec to include detailed schema for new system tables, so that they 
can be included in 10.2 documentation.
  *  Enhancing the syntax for routine creation to include external-security 
clause
  *  Very simple tests to cover only the DDL. I would be expanding on the 
testing in the later submissions, including a JUnit test suite.
  * Grant/Revoke DDL is only supported if derby.database.defaultConnectionMode 
property is set to 'sqlStandard'.

Pending items from Phase I:

   1. dblook needs to be enhanced to emit DDL for grant statements.
   2. Enhanced JUnit based test suite with many more tests. 
   3. Some implementation improvements possible with the current patch. It should be possible to combine several new nodes being added, to reduce number of nodes and hence foot print. Also, the patch adds a Java object to new system tables. While Derby already has some java objects in its system tables, I think, we should discourage adding new java objects to catalogs. Since Java objects can't be used in SQL easily, this makes metadata harder to use. I will explore rewriting SYSCOLPERMS and SYSREQUIREDPERM to not use FormattableBitSet type. This can be done by having multiple entries in these catalogs for each column referenced.

   4. Updating specification to include schema for new system tables.
   5. Need to change how property defaultConnectionMode is set and/or used.
   6. Enhance system tables to store external security clause specification.

I am also working on Grant and Revoke, Phase II. This will implement permission 
checking for DML statement. Hopefully I will have something to submit by end of 
January to complete Phase I and Phase II.

Also need to support upgrade and migration of legacy databases and update JDBC 
metadata.

Let me know if I missed anything else.




Enhance Derby by adding grant/revoke support. Grant/Revoke provide finner level 
of privileges than currently provided by Derby that is especially useful in 
network configurations.
---

Key: DERBY-464
URL: http://issues.apache.org/jira/browse/DERBY-464
Project: Derby
   Type: New Feature
 Components: SQL
   Versions: 10.0.2.1, 10.1.1.0, 10.2.0.0
Environment: generic
   Reporter: Satheesh Bandaram
   Assignee: Satheesh Bandaram
Attachments: grant.html, grantRevoke.patch.Dec5, grantRevoke.stat.Dec5

Derby currently provides a very simple permissions scheme, which is quite suitable for an embedded database system. End users of embedded Derby do not see Derby directly; they talk to a application that embeds Derby. So Derby left most of the access control work to the application. Under this scheme, Derby limits access on a per database or per system basis. A user can be granted full, read-only, or no access. 
This is less suitable in a general purpose SQL server. When end users or diverse applications can issue SQL commands directly against the database, Derby must provide more precise mechanisms to limit who can do what with the database.

I propose to enhance Derby by implementing a subset of grant/revoke 
capabilities as specified by the SQL standard. I envision this work to involve 
the following tasks, at least:
1) Develop a specification of what capabilities I would like to add to Derby.
2) Provide a high level implementation scheme.
3) Pursue a staged development plan, with support for DDL added to Derby first.
4) Add support for runtime checking of these privileges.
5) Address migration and upgrade issues from previous releases and from old 
scheme to newer database.
Since I think this is a large task, I would like to invite any interested 
people to work with me on this large and important enhancement to Derby.



begin:vcard
fn:David W Van Couvering
n:Van Couvering;David W
org:Sun Microsystems, Inc.;Database Technology Group

Re: [jira] Commented: (DERBY-464) Enhance Derby by adding grant/revoke support. Grant/Revoke provide finner level of privileges than currently provided by Derby that is especially useful in network co

2005-12-12 Thread Satheesh Bandaram
Hi David,

I did post the patch for review... I followed up the post after few days
to invite anyone to review again. That time I said I could wait for
review comments or submit then address comments. I also said I would
submit the patch over the next weekend. Since no one replied that either
they want more time or going to review before submission, I submitted
the change.

http://article.gmane.org/gmane.comp.apache.db.derby.devel/3
http://article.gmane.org/gmane.comp.apache.db.derby.devel/11012

I am willing to address any review comments anyone has. Should I have
waited for more time? I wanted to submit the changes over the weekend to
minimize any disruptions...

Satheesh

David W. Van Couvering wrote:

 Hi, Satheesh.  I am still learning the Apache Way, so I wanted to get
 some clarity on how things are generally done.

 I know that committers have the merit and trust to commit what they
 want.  I had generally assumed, however, that a large change like this
 should be posted as a patch for review before being committed.

 Is the approach that we do an svn diff of the change revision and we
 can send you comments, and you can make changes in response?

 Thanks,

 David

 Satheesh Bandaram (JIRA) wrote:

 [
 http://issues.apache.org/jira/browse/DERBY-464?page=comments#action_12360186
 ]
 Satheesh Bandaram commented on DERBY-464:
 -

 I have submitted Grant and Revoke, Part I to trunk. Let me know if
 anyone would like to join developing remaining parts. It is possible
 to coordinate development using a Wiki.
 This Phase I implements:

   * Grant/Revoke DDL parsing and execution
   * Addition of several new system tables to hold the system
 metadata. I will update my spec to include detailed schema for new
 system tables, so that they can be included in 10.2 documentation.
   *  Enhancing the syntax for routine creation to include
 external-security clause
   *  Very simple tests to cover only the DDL. I would be expanding on
 the testing in the later submissions, including a JUnit test suite.
   * Grant/Revoke DDL is only supported if
 derby.database.defaultConnectionMode property is set to 'sqlStandard'.

 Pending items from Phase I:

1. dblook needs to be enhanced to emit DDL for grant statements.
2. Enhanced JUnit based test suite with many more tests.3.
 Some implementation improvements possible with the current patch. It
 should be possible to combine several new nodes being added, to
 reduce number of nodes and hence foot print. Also, the patch adds a
 Java object to new system tables. While Derby already has some java
 objects in its system tables, I think, we should discourage adding
 new java objects to catalogs. Since Java objects can't be used in SQL
 easily, this makes metadata harder to use. I will explore rewriting
 SYSCOLPERMS and SYSREQUIREDPERM to not use FormattableBitSet type.
 This can be done by having multiple entries in these catalogs for
 each column referenced.
4. Updating specification to include schema for new system tables.
5. Need to change how property defaultConnectionMode is set and/or
 used.
6. Enhance system tables to store external security clause
 specification.

 I am also working on Grant and Revoke, Phase II. This will implement
 permission checking for DML statement. Hopefully I will have
 something to submit by end of January to complete Phase I and Phase II.

 Also need to support upgrade and migration of legacy databases and
 update JDBC metadata.

 Let me know if I missed anything else.



 Enhance Derby by adding grant/revoke support. Grant/Revoke provide
 finner level of privileges than currently provided by Derby that is
 especially useful in network configurations.
 ---


 Key: DERBY-464
 URL: http://issues.apache.org/jira/browse/DERBY-464
 Project: Derby
Type: New Feature
  Components: SQL
Versions: 10.0.2.1, 10.1.1.0, 10.2.0.0
 Environment: generic
Reporter: Satheesh Bandaram
Assignee: Satheesh Bandaram
 Attachments: grant.html, grantRevoke.patch.Dec5, grantRevoke.stat.Dec5

 Derby currently provides a very simple permissions scheme, which is
 quite suitable for an embedded database system. End users of
 embedded Derby do not see Derby directly; they talk to a application
 that embeds Derby. So Derby left most of the access control work to
 the application. Under this scheme, Derby limits access on a per
 database or per system basis. A user can be granted full, read-only,
 or no access. This is less suitable in a general purpose SQL server.
 When end users or diverse applications can issue SQL commands
 directly against the database, Derby must provide more precise
 mechanisms to limit who can do what with the database.
 I propose to enhance Derby by implementing a 

Re: [jira] Commented: (DERBY-464) Enhance Derby by adding grant/revoke support. Grant/Revoke provide finner level of privileges than currently provided by Derby that is especially useful in network co

2005-12-12 Thread David W. Van Couvering
Thanks, Sateesh.  Sorry, I missed the request for review comments.  No 
need; I personally am not able at this time to review your changes.  I 
just thought this was the first time we saw these changes.  My mistake.


David

Satheesh Bandaram wrote:

Hi David,

I did post the patch for review... I followed up the post after few days
to invite anyone to review again. That time I said I could wait for
review comments or submit then address comments. I also said I would
submit the patch over the next weekend. Since no one replied that either
they want more time or going to review before submission, I submitted
the change.

http://article.gmane.org/gmane.comp.apache.db.derby.devel/3
http://article.gmane.org/gmane.comp.apache.db.derby.devel/11012

I am willing to address any review comments anyone has. Should I have
waited for more time? I wanted to submit the changes over the weekend to
minimize any disruptions...

Satheesh

David W. Van Couvering wrote:



Hi, Satheesh.  I am still learning the Apache Way, so I wanted to get
some clarity on how things are generally done.

I know that committers have the merit and trust to commit what they
want.  I had generally assumed, however, that a large change like this
should be posted as a patch for review before being committed.

Is the approach that we do an svn diff of the change revision and we
can send you comments, and you can make changes in response?

Thanks,

David

Satheesh Bandaram (JIRA) wrote:



   [
http://issues.apache.org/jira/browse/DERBY-464?page=comments#action_12360186
]
Satheesh Bandaram commented on DERBY-464:
-

I have submitted Grant and Revoke, Part I to trunk. Let me know if
anyone would like to join developing remaining parts. It is possible
to coordinate development using a Wiki.
This Phase I implements:

 * Grant/Revoke DDL parsing and execution
 * Addition of several new system tables to hold the system
metadata. I will update my spec to include detailed schema for new
system tables, so that they can be included in 10.2 documentation.
 *  Enhancing the syntax for routine creation to include
external-security clause
 *  Very simple tests to cover only the DDL. I would be expanding on
the testing in the later submissions, including a JUnit test suite.
 * Grant/Revoke DDL is only supported if
derby.database.defaultConnectionMode property is set to 'sqlStandard'.

Pending items from Phase I:

  1. dblook needs to be enhanced to emit DDL for grant statements.
  2. Enhanced JUnit based test suite with many more tests.3.
Some implementation improvements possible with the current patch. It
should be possible to combine several new nodes being added, to
reduce number of nodes and hence foot print. Also, the patch adds a
Java object to new system tables. While Derby already has some java
objects in its system tables, I think, we should discourage adding
new java objects to catalogs. Since Java objects can't be used in SQL
easily, this makes metadata harder to use. I will explore rewriting
SYSCOLPERMS and SYSREQUIREDPERM to not use FormattableBitSet type.
This can be done by having multiple entries in these catalogs for
each column referenced.
  4. Updating specification to include schema for new system tables.
  5. Need to change how property defaultConnectionMode is set and/or
used.
  6. Enhance system tables to store external security clause
specification.

I am also working on Grant and Revoke, Phase II. This will implement
permission checking for DML statement. Hopefully I will have
something to submit by end of January to complete Phase I and Phase II.

Also need to support upgrade and migration of legacy databases and
update JDBC metadata.

Let me know if I missed anything else.





Enhance Derby by adding grant/revoke support. Grant/Revoke provide
finner level of privileges than currently provided by Derby that is
especially useful in network configurations.
---


   Key: DERBY-464
   URL: http://issues.apache.org/jira/browse/DERBY-464
   Project: Derby
  Type: New Feature
Components: SQL
  Versions: 10.0.2.1, 10.1.1.0, 10.2.0.0
Environment: generic
  Reporter: Satheesh Bandaram
  Assignee: Satheesh Bandaram
Attachments: grant.html, grantRevoke.patch.Dec5, grantRevoke.stat.Dec5

Derby currently provides a very simple permissions scheme, which is
quite suitable for an embedded database system. End users of
embedded Derby do not see Derby directly; they talk to a application
that embeds Derby. So Derby left most of the access control work to
the application. Under this scheme, Derby limits access on a per
database or per system basis. A user can be granted full, read-only,
or no access. This is less suitable in a general purpose SQL server.
When end users or diverse applications can issue SQL commands
directly 

Re: [jira] Commented: (DERBY-464) Enhance Derby by adding grant/revoke support. Grant/Revoke provide finner level of privileges than currently provided by Derby that is especially useful in network co

2005-10-27 Thread Satheesh Bandaram




Why exactly would we want to strengthen builtin-authentication scheme
when all of us agreed it was for simple embedded application use? I am
not sure how useful access control is for embedded usages.

But I will hold off on any more questions and wait for your proposal.

Satheesh

Francois Orsini wrote:
I'm all for having a homogeneous and unified way to
manage
(create, drop, alter, etc) users in Derby and specifically for the
built-in authentication scheme which is what I was referring to. Today
we simply don't have that.
  
More to follow as am starting to feel itchy ;)
  
--francois
  
  On 10/26/05, Daniel John Debrunner [EMAIL PROTECTED] wrote:
  Francois
Orsini wrote:

 Agreed since we always made it clear that users could be defined
at the
 system and/or database level ;)

 However, even as of today, databases can be dependent on users
defined

 at the system level if you have 'derby.database.propertiesOnly'
set to
 false which is the default I believe ;)

 What I meant to say is: (and this was in the context of
GrantRevoke
 access to database(s) when users are defined at the system level
in my

 case which I think we'll be the most popular choice - 80/20 rule)

Yep, flexibility is good. As long as we continue to support
self-contained databases. A system database would be a significant new
feature.


Of course, I'm unclear on exactly what you are proposing, is it a new
authentication scheme or something else? I eagerly await the functional
spec/proposal. :-)

Dan.


  
  
  






Re: [jira] Commented: (DERBY-464) Enhance Derby by adding grant/revoke support. Grant/Revoke provide finner level of privileges than currently provided by Derby that is especially useful in network co

2005-10-27 Thread Francois Orsini
Derby's Built-in authentication can be used in a client-server mode
today along with DRDA's secure transport mechanisms of users'
credential across the wire. Originally, we had no cloudscape network
driver besides 3rd party ones which were NOT providing secure transport
of user credentials across the wire besides using SSL (which encrypts
everything not just credentials - overkill if you don't need it) - I
don't see why we could not improve the way user  passwords are
stored at the system level to be as secure as the ones defined at the
database level. This is internal afterall - then, I would like to see a
unified way of defining users at the database and system level when
using built-in authentication - a simple 'CREATE USER' command for
instance (and am just taking a quick example) would do it and improve
useability at the same time - implementation details (storage) are
internal as it is done at the database level...I believe that Derby
will be used more and more in a client-server mode, along with built-in
authentication way of storing credentials (SHA-1 single-hashed) which
is fairly secure already (at the database level) - yes a few bits could
be improved but the storage of credentials is actually pretty good at
the database level.

It does not make sense anymore to have to have 2 ways to define users
for a particular authentication scheme which is the built-in database
system one.

This is exactly in-line as far as why we would implement grant/revoke
now since we didn't think we needed it when we implemented the other
and simpler scheme via properties back then as we were thinking
embedded (which lead us to piggy-back on using java 'properties' to
define ACLs as we did for users)

Authorization is different than authentication, hence I agree with the second part of your statement.

I will post a proposal once am done and the community can comment on it.

--francoisOn 10/27/05, Satheesh Bandaram [EMAIL PROTECTED] wrote:



  
  


Why exactly would we want to strengthen builtin-authentication scheme
when all of us agreed it was for simple embedded application use? I am
not sure how useful access control is for embedded usages.

But I will hold off on any more questions and wait for your proposal.

Satheesh

Francois Orsini wrote:
I'm all for having a homogeneous and unified way to
manage
(create, drop, alter, etc) users in Derby and specifically for the
built-in authentication scheme which is what I was referring to. Today
we simply don't have that.
  
More to follow as am starting to feel itchy ;)
  
--francois
  
  On 10/26/05, Daniel John Debrunner [EMAIL PROTECTED]
 wrote:
  Francois
Orsini wrote:

 Agreed since we always made it clear that users could be defined
at the
 system and/or database level ;)

 However, even as of today, databases can be dependent on users
defined

 at the system level if you have 'derby.database.propertiesOnly'
set to
 false which is the default I believe ;)

 What I meant to say is: (and this was in the context of
GrantRevoke
 access to database(s) when users are defined at the system level
in my

 case which I think we'll be the most popular choice - 80/20 rule)

Yep, flexibility is good. As long as we continue to support
self-contained databases. A system database would be a significant new
feature.


Of course, I'm unclear on exactly what you are proposing, is it a new
authentication scheme or something else? I eagerly await the functional
spec/proposal. :-)

Dan.


  
  
  







Re: [jira] Commented: (DERBY-464) Enhance Derby by adding grant/revoke support. Grant/Revoke provide finner level of privileges than currently provided by Derby that is especially useful in network co

2005-10-26 Thread Daniel John Debrunner
Francois Orsini (JIRA) wrote:

 [ 
 http://issues.apache.org/jira/browse/DERBY-464?page=comments#action_12356032 
 ] 
 
 Francois Orsini commented on DERBY-464:
 ---
 
 The way I implememted users in Cloudscape originally was done in a 
 Cloudscape running Embedded mindset rather than anything else - in a 
 similar way we what ww have done for permissions via properties - defining 
 users is one thing, authenticating them via various schemes in another - For 
 instance today, users defined at the System level, not database one, do not 
 have their password encrypted for the built-in authentication scheme. I agree 
 that users can be defined outside of Derby but we can't assume all 
 organizations have an LDAP server out there - in fact, a lot if not most of 
 them still don't have one.
 
 What I have in mind for Derby defined users is the following:

Probably good to move this to a different topic, rather than clutter up
the grant/revoke issue.

Dan.



Re: [jira] Commented: (DERBY-464) Enhance Derby by adding grant/revoke support. Grant/Revoke provide finner level of privileges than currently provided by Derby that is especially useful in network co

2005-10-26 Thread Daniel John Debrunner
Francois Orsini (JIRA) wrote:

 [ 
 http://issues.apache.org/jira/browse/DERBY-464?page=comments#action_12356032 
 ] 
 
 Francois Orsini commented on DERBY-464:
 ---
 
 The way I implememted users in Cloudscape originally was done in a 
 Cloudscape running Embedded mindset rather than anything else - in a 
 similar way we what ww have done for permissions via properties - defining 
 users is one thing, authenticating them via various schemes in another - For 
 instance today, users defined at the System level, not database one, do not 
 have their password encrypted for the built-in authentication scheme. I agree 
 that users can be defined outside of Derby but we can't assume all 
 organizations have an LDAP server out there - in fact, a lot if not most of 
 them still don't have one.
 
 What I have in mind for Derby defined users is the following:
 
 - Users should be defined at the System level and added to databases as 
 required (Grant access to a database)

That, to my mind would be a bad step. Currently Derby databases are
independent of any system, they are self contained. Thus they can be
copied anywhere and continue to work. Adding a dependency on a system
database just seems wrong.

I've often thought that one mistake made in the early days was to have
the concept of a system, the single derby.properties, derby.log file, or
reading system properties.


Dan.




Re: [jira] Commented: (DERBY-464) Enhance Derby by adding grant/revoke support. Grant/Revoke provide finner level of privileges than currently provided by Derby that is especially useful in network co

2005-10-26 Thread Francois Orsini
Agreed since we always made it clear that users could be defined at the system and/or database level ;)

However, even as of today, databases can be dependent on users defined
at the system level if you have 'derby.database.propertiesOnly' set to
false which is the default I believe ;)

What I meant to say is: (and this was in the context of
GrantRevoke access to database(s) when users are defined at the
system level in my case which I think we'll be the most popular choice
- 80/20 rule)

It's ok to have a user being defined as a legitimate user of a database
(sysusers catalog in the database for instance - never meant to remove
a notion like that since we allow something similar today) - but on the
other hands, one should not have to define users at the database level
if they don't want to. Today we can have a user password being
encrypted at the database level but not at the system one - hence the
motivation for improving this at the system level in the case of
Derby's built-in authentication (password-based) - we should not
require to have to define users' credentials in every database they can
access because we think a database should be independent of the system
level (one) - it is great of course but there could be user management
useability issues having to manage a user across several databases if
one does not plug into a directory service (i.e. LDAP)...User
definitions and therefore credentials at the System level are too
exposed right now and we know why - user definition at the database
level is more secure than at the system level and I believe this should
be fixed/addressed (am not a big fan of exposed system properties
either and especially when passwords are involved) but this is the path
we had decided as you said...

I'm just guessing and I may be wrong that most DBA's will either want
to define users at the system level _or_ have Derby authenticate
against their directory service (users' credentials managed outside
then).

So yes, we could have a Sysusers (virtual or not) table at the database
and system level to define user access for the database or system-wide,
as well as providing a more secure storage for encrypted passwords (and
especially for the users defined at the system level). This would
provide a unified way of storing user credentials for the built-in
scheme at least as well as looking at current defined users (i.e.
common sysusers interface)

--francoisOn 10/26/05, Daniel John Debrunner [EMAIL PROTECTED] wrote:
Francois Orsini (JIRA) wrote: [ http://issues.apache.org/jira/browse/DERBY-464?page=comments#action_12356032 ]
 Francois Orsini commented on DERBY-464: ---
The way I implememted users in Cloudscape originally was done in a
Cloudscape running Embedded mindset rather than anything else - in a
similar way we what ww have done for permissions via properties -
defining users is one thing, authenticating them via various schemes in
another - For instance today, users defined at the System level, not
database one, do not have their password encrypted for the built-in
authentication scheme. I agree that users can be defined outside of
Derby but we can't assume all organizations have an LDAP server out
there - in fact, a lot if not most of them still don't have one. What I have in mind for Derby defined users is the following: - Users should be defined at the System level and added to databases as required (Grant access to a database)
That, to my mind would be a bad step. Currently Derby databases areindependent of any system, they are self contained. Thus they can becopied anywhere and continue to work. Adding a dependency on a system
database just seems wrong.I've often thought that one mistake made in the early days was to havethe concept of a system, the single derby.properties, derby.log file, orreading system properties.
Dan.