dbTalk Databases Forums  

Label security - Beginners question...

comp.databases.oracle.misc comp.databases.oracle.misc


Discuss Label security - Beginners question... in the comp.databases.oracle.misc forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Volker Hetzer
 
Posts: n/a

Default Label security - Beginners question... - 02-04-2008 , 02:26 PM






Hi!
After having seen a lot of three tier applications managing security outside
the database we'd like, when designing our own app, use the database for this.
So, every user is a database user, belongs to a department and can read and
insert documents.
What we've got then is a small number of CAD locations, another small number
of manufacturing locations and a lot of projects. Each project is designed
at one CAD location and manufactured at one manufacturing location.
What we've thought about is to have a master table containing the CAD
and manufacturing location for each project. Then, all document and
other tables reference that table.
When someone from CAD inserts or updates project data, the corresponding
manufacturer should be able to see it. But we don't want CAD to think
about the manufacturer for each document. In theory, the fact that
document X references project Y should be enough for security.
In our opinion that would lead to
- one compartment per project
- each manufacturing location having a lot of compartments in their
permissions (do several hundred compartments have a performance penalty?)
- moving manufacturing of a project from one location to another would be easy

On the other hand we could have the manufacturing location in the group part
of the label and set it via a labeling function. In that case, every insert
would fetch the manufacturing location from the project master table and
create the appropriate label. However, I see no way to change all labels
if the manufacturing location gets changed in the project master table. I
would like to avoid doing this with a trigger.

Is there any other way? Maybe with a predicate? But as far as I can see
it would have to use a correlated subquery and it would have to know the
alias of the outer table.

Any other ideas?

Lots of Greetings!
Volker
--
For email replies, please substitute the obvious.

Reply With Quote
  #2  
Old   
Mark D Powell
 
Posts: n/a

Default Re: Label security - Beginners question... - 02-04-2008 , 02:41 PM






On Feb 4, 3:26*pm, Volker Hetzer <firstname.lastn... (AT) ieee (DOT) org> wrote:
Quote:
Hi!
After having seen a lot of three tier applications managing security outside
the database we'd like, when designing our own app, use the database for this.
So, every user is a database user, belongs to a department and can read and
insert documents.
What we've got then is a small number of CAD locations, another small number
of manufacturing locations and a lot of projects. Each project is designed
at one CAD location and manufactured at one manufacturing location.
What we've thought about is to have a master table containing the CAD
and manufacturing location for each project. Then, all document and
other tables reference that table.
When someone from CAD inserts or updates project data, the corresponding
manufacturer should be able to see it. But we don't want CAD to think
about the manufacturer for each document. In theory, the fact that
document X references project Y should be enough for security.
In our opinion that would lead to
* - one compartment per project
* - each manufacturing location having a lot of compartments in their
permissions (do several hundred compartments have a performance penalty?)
* - moving manufacturing of a project from one location to another wouldbe easy

On the other hand we could have the manufacturing location in the group part
of the label and set it via a labeling function. In that case, every insert
would fetch the manufacturing location from the project master table and
create the appropriate label. However, I see no way to change all labels
if the manufacturing location gets changed in the project master table. I
would like to avoid doing this with a trigger.

Is there any other way? Maybe with a predicate? But as far as I can see
it would have to use a correlated subquery and it would have to know the
alias of the outer table.

Any other ideas?

Lots of Greetings!
Volker
--
For email replies, please substitute the obvious.
Is the label a column in one of your tables or Oracle Label security,
which is an extra cost item?

A coordinated subquery always has to know the outer table_name or
alias used in the SQL so why is that a problem? Is you application
based on dynamic SQL? From the description given I see no reason why
dynamic SQL would be necessary.

What is the full version of Oracle?

HTH -- Mark D Powell --






Reply With Quote
  #3  
Old   
Mark D Powell
 
Posts: n/a

Default Re: Label security - Beginners question... - 02-04-2008 , 02:41 PM



On Feb 4, 3:26*pm, Volker Hetzer <firstname.lastn... (AT) ieee (DOT) org> wrote:
Quote:
Hi!
After having seen a lot of three tier applications managing security outside
the database we'd like, when designing our own app, use the database for this.
So, every user is a database user, belongs to a department and can read and
insert documents.
What we've got then is a small number of CAD locations, another small number
of manufacturing locations and a lot of projects. Each project is designed
at one CAD location and manufactured at one manufacturing location.
What we've thought about is to have a master table containing the CAD
and manufacturing location for each project. Then, all document and
other tables reference that table.
When someone from CAD inserts or updates project data, the corresponding
manufacturer should be able to see it. But we don't want CAD to think
about the manufacturer for each document. In theory, the fact that
document X references project Y should be enough for security.
In our opinion that would lead to
* - one compartment per project
* - each manufacturing location having a lot of compartments in their
permissions (do several hundred compartments have a performance penalty?)
* - moving manufacturing of a project from one location to another wouldbe easy

On the other hand we could have the manufacturing location in the group part
of the label and set it via a labeling function. In that case, every insert
would fetch the manufacturing location from the project master table and
create the appropriate label. However, I see no way to change all labels
if the manufacturing location gets changed in the project master table. I
would like to avoid doing this with a trigger.

Is there any other way? Maybe with a predicate? But as far as I can see
it would have to use a correlated subquery and it would have to know the
alias of the outer table.

Any other ideas?

Lots of Greetings!
Volker
--
For email replies, please substitute the obvious.
Is the label a column in one of your tables or Oracle Label security,
which is an extra cost item?

A coordinated subquery always has to know the outer table_name or
alias used in the SQL so why is that a problem? Is you application
based on dynamic SQL? From the description given I see no reason why
dynamic SQL would be necessary.

What is the full version of Oracle?

HTH -- Mark D Powell --






Reply With Quote
  #4  
Old   
Mark D Powell
 
Posts: n/a

Default Re: Label security - Beginners question... - 02-04-2008 , 02:41 PM



On Feb 4, 3:26*pm, Volker Hetzer <firstname.lastn... (AT) ieee (DOT) org> wrote:
Quote:
Hi!
After having seen a lot of three tier applications managing security outside
the database we'd like, when designing our own app, use the database for this.
So, every user is a database user, belongs to a department and can read and
insert documents.
What we've got then is a small number of CAD locations, another small number
of manufacturing locations and a lot of projects. Each project is designed
at one CAD location and manufactured at one manufacturing location.
What we've thought about is to have a master table containing the CAD
and manufacturing location for each project. Then, all document and
other tables reference that table.
When someone from CAD inserts or updates project data, the corresponding
manufacturer should be able to see it. But we don't want CAD to think
about the manufacturer for each document. In theory, the fact that
document X references project Y should be enough for security.
In our opinion that would lead to
* - one compartment per project
* - each manufacturing location having a lot of compartments in their
permissions (do several hundred compartments have a performance penalty?)
* - moving manufacturing of a project from one location to another wouldbe easy

On the other hand we could have the manufacturing location in the group part
of the label and set it via a labeling function. In that case, every insert
would fetch the manufacturing location from the project master table and
create the appropriate label. However, I see no way to change all labels
if the manufacturing location gets changed in the project master table. I
would like to avoid doing this with a trigger.

Is there any other way? Maybe with a predicate? But as far as I can see
it would have to use a correlated subquery and it would have to know the
alias of the outer table.

Any other ideas?

Lots of Greetings!
Volker
--
For email replies, please substitute the obvious.
Is the label a column in one of your tables or Oracle Label security,
which is an extra cost item?

A coordinated subquery always has to know the outer table_name or
alias used in the SQL so why is that a problem? Is you application
based on dynamic SQL? From the description given I see no reason why
dynamic SQL would be necessary.

What is the full version of Oracle?

HTH -- Mark D Powell --






Reply With Quote
  #5  
Old   
Mark D Powell
 
Posts: n/a

Default Re: Label security - Beginners question... - 02-04-2008 , 02:41 PM



On Feb 4, 3:26*pm, Volker Hetzer <firstname.lastn... (AT) ieee (DOT) org> wrote:
Quote:
Hi!
After having seen a lot of three tier applications managing security outside
the database we'd like, when designing our own app, use the database for this.
So, every user is a database user, belongs to a department and can read and
insert documents.
What we've got then is a small number of CAD locations, another small number
of manufacturing locations and a lot of projects. Each project is designed
at one CAD location and manufactured at one manufacturing location.
What we've thought about is to have a master table containing the CAD
and manufacturing location for each project. Then, all document and
other tables reference that table.
When someone from CAD inserts or updates project data, the corresponding
manufacturer should be able to see it. But we don't want CAD to think
about the manufacturer for each document. In theory, the fact that
document X references project Y should be enough for security.
In our opinion that would lead to
* - one compartment per project
* - each manufacturing location having a lot of compartments in their
permissions (do several hundred compartments have a performance penalty?)
* - moving manufacturing of a project from one location to another wouldbe easy

On the other hand we could have the manufacturing location in the group part
of the label and set it via a labeling function. In that case, every insert
would fetch the manufacturing location from the project master table and
create the appropriate label. However, I see no way to change all labels
if the manufacturing location gets changed in the project master table. I
would like to avoid doing this with a trigger.

Is there any other way? Maybe with a predicate? But as far as I can see
it would have to use a correlated subquery and it would have to know the
alias of the outer table.

Any other ideas?

Lots of Greetings!
Volker
--
For email replies, please substitute the obvious.
Is the label a column in one of your tables or Oracle Label security,
which is an extra cost item?

A coordinated subquery always has to know the outer table_name or
alias used in the SQL so why is that a problem? Is you application
based on dynamic SQL? From the description given I see no reason why
dynamic SQL would be necessary.

What is the full version of Oracle?

HTH -- Mark D Powell --






Reply With Quote
  #6  
Old   
Volker Hetzer
 
Posts: n/a

Default Re: Label security - Beginners question... - 02-05-2008 , 06:41 AM



Mark D Powell schrieb:
Quote:
On Feb 4, 3:26 pm, Volker Hetzer <firstname.lastn... (AT) ieee (DOT) org> wrote:
Hi!
After having seen a lot of three tier applications managing security outside
the database we'd like, when designing our own app, use the database for this.
So, every user is a database user, belongs to a department and can read and
insert documents.
[rest skipped]

[reordered your answer a bit]
Quote:
What is the full version of Oracle?
Thanks for reminding me of the customs here! :-)
We have a 10.2.0.3.0 enterprise edition running and think about
starting with that.

Quote:
Is the label a column in one of your tables or Oracle Label security,
We think about using label security, although "row level security"
would be a better term. So far a fixed label seems to create more problems
than it solves. I'm still reading up on it and yesterday evening
discovered something called "fine grained access control". It looks like a
much better fit, with the predicate functions. I still have to play
around with it a bit. But how does it work with DML? How would the policy
modify an insert statement? Or does it evaluate the predicate with the
values from the insert? Can I use ld and :new like with triggers?


Quote:
which is an extra cost item?
From what I've seen in the documentation it's part of the enterprise
edition. The costly part is about encryption and non-password authentication
stuff as far as I see. But we'll check explicitly with our contract guys.
Anyway I'll ask about FGA too.

Quote:
A coordinated subquery always has to know the outer table_name or
alias used in the SQL so why is that a problem? Is you application
based on dynamic SQL? From the description given I see no reason why
dynamic SQL would be necessary.
You are right, it's not really necessary. During development errors are
no problem and after that the main thing is that someone firing
up sqlplus can't see the rows.

Lots of Greetings!
Volker
--
For email replies, please substitute the obvious.


Reply With Quote
  #7  
Old   
Volker Hetzer
 
Posts: n/a

Default Re: Label security - Beginners question... - 02-05-2008 , 06:41 AM



Mark D Powell schrieb:
Quote:
On Feb 4, 3:26 pm, Volker Hetzer <firstname.lastn... (AT) ieee (DOT) org> wrote:
Hi!
After having seen a lot of three tier applications managing security outside
the database we'd like, when designing our own app, use the database for this.
So, every user is a database user, belongs to a department and can read and
insert documents.
[rest skipped]

[reordered your answer a bit]
Quote:
What is the full version of Oracle?
Thanks for reminding me of the customs here! :-)
We have a 10.2.0.3.0 enterprise edition running and think about
starting with that.

Quote:
Is the label a column in one of your tables or Oracle Label security,
We think about using label security, although "row level security"
would be a better term. So far a fixed label seems to create more problems
than it solves. I'm still reading up on it and yesterday evening
discovered something called "fine grained access control". It looks like a
much better fit, with the predicate functions. I still have to play
around with it a bit. But how does it work with DML? How would the policy
modify an insert statement? Or does it evaluate the predicate with the
values from the insert? Can I use ld and :new like with triggers?


Quote:
which is an extra cost item?
From what I've seen in the documentation it's part of the enterprise
edition. The costly part is about encryption and non-password authentication
stuff as far as I see. But we'll check explicitly with our contract guys.
Anyway I'll ask about FGA too.

Quote:
A coordinated subquery always has to know the outer table_name or
alias used in the SQL so why is that a problem? Is you application
based on dynamic SQL? From the description given I see no reason why
dynamic SQL would be necessary.
You are right, it's not really necessary. During development errors are
no problem and after that the main thing is that someone firing
up sqlplus can't see the rows.

Lots of Greetings!
Volker
--
For email replies, please substitute the obvious.


Reply With Quote
  #8  
Old   
Volker Hetzer
 
Posts: n/a

Default Re: Label security - Beginners question... - 02-05-2008 , 06:41 AM



Mark D Powell schrieb:
Quote:
On Feb 4, 3:26 pm, Volker Hetzer <firstname.lastn... (AT) ieee (DOT) org> wrote:
Hi!
After having seen a lot of three tier applications managing security outside
the database we'd like, when designing our own app, use the database for this.
So, every user is a database user, belongs to a department and can read and
insert documents.
[rest skipped]

[reordered your answer a bit]
Quote:
What is the full version of Oracle?
Thanks for reminding me of the customs here! :-)
We have a 10.2.0.3.0 enterprise edition running and think about
starting with that.

Quote:
Is the label a column in one of your tables or Oracle Label security,
We think about using label security, although "row level security"
would be a better term. So far a fixed label seems to create more problems
than it solves. I'm still reading up on it and yesterday evening
discovered something called "fine grained access control". It looks like a
much better fit, with the predicate functions. I still have to play
around with it a bit. But how does it work with DML? How would the policy
modify an insert statement? Or does it evaluate the predicate with the
values from the insert? Can I use ld and :new like with triggers?


Quote:
which is an extra cost item?
From what I've seen in the documentation it's part of the enterprise
edition. The costly part is about encryption and non-password authentication
stuff as far as I see. But we'll check explicitly with our contract guys.
Anyway I'll ask about FGA too.

Quote:
A coordinated subquery always has to know the outer table_name or
alias used in the SQL so why is that a problem? Is you application
based on dynamic SQL? From the description given I see no reason why
dynamic SQL would be necessary.
You are right, it's not really necessary. During development errors are
no problem and after that the main thing is that someone firing
up sqlplus can't see the rows.

Lots of Greetings!
Volker
--
For email replies, please substitute the obvious.


Reply With Quote
  #9  
Old   
Volker Hetzer
 
Posts: n/a

Default Re: Label security - Beginners question... - 02-05-2008 , 06:41 AM



Mark D Powell schrieb:
Quote:
On Feb 4, 3:26 pm, Volker Hetzer <firstname.lastn... (AT) ieee (DOT) org> wrote:
Hi!
After having seen a lot of three tier applications managing security outside
the database we'd like, when designing our own app, use the database for this.
So, every user is a database user, belongs to a department and can read and
insert documents.
[rest skipped]

[reordered your answer a bit]
Quote:
What is the full version of Oracle?
Thanks for reminding me of the customs here! :-)
We have a 10.2.0.3.0 enterprise edition running and think about
starting with that.

Quote:
Is the label a column in one of your tables or Oracle Label security,
We think about using label security, although "row level security"
would be a better term. So far a fixed label seems to create more problems
than it solves. I'm still reading up on it and yesterday evening
discovered something called "fine grained access control". It looks like a
much better fit, with the predicate functions. I still have to play
around with it a bit. But how does it work with DML? How would the policy
modify an insert statement? Or does it evaluate the predicate with the
values from the insert? Can I use ld and :new like with triggers?


Quote:
which is an extra cost item?
From what I've seen in the documentation it's part of the enterprise
edition. The costly part is about encryption and non-password authentication
stuff as far as I see. But we'll check explicitly with our contract guys.
Anyway I'll ask about FGA too.

Quote:
A coordinated subquery always has to know the outer table_name or
alias used in the SQL so why is that a problem? Is you application
based on dynamic SQL? From the description given I see no reason why
dynamic SQL would be necessary.
You are right, it's not really necessary. During development errors are
no problem and after that the main thing is that someone firing
up sqlplus can't see the rows.

Lots of Greetings!
Volker
--
For email replies, please substitute the obvious.


Reply With Quote
  #10  
Old   
Frank van Bortel
 
Posts: n/a

Default Re: Label security - Beginners question... - 02-05-2008 , 01:49 PM



Volker Hetzer wrote:
Quote:
Hi!
After having seen a lot of three tier applications managing security
outside the database we'd like, when designing our own app, use the
database for this.
So, every user is a database user, belongs to a department and can read
and insert documents.
What we've got then is a small number of CAD locations, another small
number
of manufacturing locations and a lot of projects. Each project is designed
at one CAD location and manufactured at one manufacturing location.
What we've thought about is to have a master table containing the CAD
and manufacturing location for each project. Then, all document and
other tables reference that table.
When someone from CAD inserts or updates project data, the corresponding
manufacturer should be able to see it. But we don't want CAD to think
about the manufacturer for each document. In theory, the fact that
document X references project Y should be enough for security.
In our opinion that would lead to
- one compartment per project
- each manufacturing location having a lot of compartments in their
permissions (do several hundred compartments have a performance penalty?)
- moving manufacturing of a project from one location to another would
be easy

On the other hand we could have the manufacturing location in the group
part of the label and set it via a labeling function. In that case,
every insert would fetch the manufacturing location from the project
master table and create the appropriate label. However, I see no way to
change all labels
if the manufacturing location gets changed in the project master table.
I would like to avoid doing this with a trigger.

Is there any other way? Maybe with a predicate? But as far as I can see
it would have to use a correlated subquery and it would have to know the
alias of the outer table.

Any other ideas?

Lots of Greetings!
Volker
VPD pops to mind; like
select true
where exists (select vendor from projects)
or whatever your exact constellation is.
--

Regards,
Frank van Bortel

Top-posting in UseNet newsgroups is one way to shut me up


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.3
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.