Claims
- 1. A method of controlling access to data in a database system, the method comprising the steps of:establishing a plurality of security policy groups for a database schema object in said database system, wherein each security policy group of said plurality of security policy groups includes at least one policy, wherein said at least one policy is a rule that governs access to said database schema object; selecting a first set of one or more security policy groups of said plurality of security policy groups for a first user based on first context information associated with said first user; selecting a second set of one or more security policy groups of said plurality of security policy groups for a second user based on second context information associated with said second user; wherein said second set of one or more security policy groups contains a security policy group that is not a member of said first set of one or more security policy groups; receiving a query associated with said first user that requires data that resides in said database schema object, wherein said query does not specify any security policy group in said first set of one or more security policy groups and said second set of one or more policy groups; restricting access of said query to said database schema object based on policies reflected in said first set of selected one or more security policy groups; and restricting access of said second user to said database schema object based on policies reflected in said second set of selected one or more security policy groups.
- 2. The method of claim 1, wherein:the step of establishing a plurality of security policy groups includes establishing a default security policy group; and wherein the step of restricting access of said query includes restricting access of said query to said database schema object based on policies reflected in both said selected one or more security policy groups and said default security policy group.
- 3. The method of claim 1, wherein:said first context information contains an attribute used to identify a particular security policy group; and the step of selecting a first set of one or more security policy groups includes selecting one or more security policy groups based on said attribute.
- 4. The method of claim 3, wherein the step of selecting a first set of one or more security policy groups based on said attribute includes:determining whether said attribute identifies any particular security policy group; and if said attribute does not identify any particular security policy group, then selecting all of said plurality of security policy groups.
- 5. The method of claim 2, further including the step of setting said attribute using an attribute mechanism that selectively restricts access to attributes of said first context information.
- 6. The method of claim 5, wherein said attribute mechanism sets said attribute in response to messages from a client of the database system.
- 7. The method of claim 3, wherein:the method further includes the step of generating metadata specifying that said attribute indicates said particular security policy for said database schema object; and the step of selecting a first set of one or more security policy groups includes: inspecting said metadata to determine that said attribute indicates a particular security policy for said database schema object, and in response to determining that said attribute indicates a particular security policy for said database schema object, selecting one or more security policy groups based on said attribute.
- 8. The method of claim 1, wherein the step of restricting access of said query includes said database system rewriting said query to append one or more predicates to a query, said one or more predicates reflecting said policies.
- 9. The method of claim 1, wherein the step of establishing a plurality of security policy groups includes establishing a set of one or more policy functions that belong to said security policy groups.
- 10. The method of claim 9, wherein the step of restricting access of said query includes appending one or more predicates to a query, said one or more predicates reflecting said policies, wherein said one or more predicates are generated by one or more policy functions belonging to said selected one or more security policy groups.
- 11. The method of claim 1, further including the steps of:selecting another one or more security policy groups of said plurality of security policy groups for another user based on context information associated with said other user; restricting access of said other user to said database schema object based on policies reflected in said selected other one or more security policy groups; and wherein said other one or more security policy groups and said first set of one or more security policy groups selected for said first user are not identical.
- 12. A computer-readable medium carrying one or more sequences of instructions for controlling access to data in a database system, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of:establishing a plurality of security policy groups for a database schema object in said database system, wherein each security policy group of said plurality of security policy groups includes at least one policy, wherein said at least one policy is a rule that governs access to said database schema object; selecting a first set of one or more security policy groups of said plurality of security policy groups for a first user based on first context information associated with said first user; selecting a second set of one or more security policy groups of said plurality of security policy groups for a second user based on second context information associated with said second user; wherein said second set of one or more security policy groups contains a security policy group that is not a member of said first set of one or more security policy groups; receiving a query associated with said first user that requires data that resides in said database schema object, wherein said query does not specify any security policy group in said first set of one or more security policy groups and said second set of one or more policy groups; restricting access of said query to said database schema object based on policies reflected in said first set of selected one or more security policy groups; and restricting access of said second user to said database schema object based on policies reflected in said second set of selected one or more security policy groups.
- 13. The computer-readable medium of claim 12, wherein:the step of establishing a plurality of security policy groups includes establishing a default security policy group; and wherein the step of restricting access of said query includes restricting access of said query to said database schema object based on policies reflected in both said selected one or more security policy groups and said default security policy group.
- 14. The computer-readable medium of claim 12, wherein:said first context information contains an attribute used to identify a particular security policy group; and the step of selecting a first set of one or more security policy groups includes selecting one or more security policy groups based on said attribute.
- 15. The computer-readable medium of claim 14, wherein the step of selecting a first set of one or more security policy groups based on said attribute includes:determining whether said attribute identifies any particular security policy group; and if said attribute does not identify any particular security policy group, then selecting all of said plurality of security policy groups.
- 16. The computer-readable medium of claim 13, further including one or more sequences of instructions for performing the step of setting said attribute using an attribute mechanism that selectively restricts access to attributes of said first context information.
- 17. The computer-readable medium of claim 16, wherein said attribute mechanism sets said attribute in response to messages from a client of the database system.
- 18. The computer-readable medium of claim 14, wherein:the computer-readable medium further includes one or more sequences of instructions for performing the step of generating metadata specifying that said attribute indicates said particular security policy for said database schema object; and the step of selecting one or more security policy groups includes: inspecting said metadata to determine that said attribute indicates a particular security policy for said database schema object, and in response to determining that said attribute indicates a particular security policy for said database schema object, selecting one or more security policy groups based on said attribute.
- 19. The computer-readable medium of claim 12, wherein the step of restricting access of said query includes said database system rewriting said query to append one or more predicates to a query, said one or more predicates reflecting said policies.
- 20. The computer-readable medium of claim 12, wherein the step of establishing a plurality of security policy groups includes establishing a set of one or more policy functions that belong to said security policy groups.
- 21. The computer-readable medium of claim 20, wherein the step of restricting access of said query includes appending one or more predicates to a query, said one or more predicates reflecting said policies, wherein said one or more predicates are generated by one or more policy functions belonging to said selected one or more security policy groups.
- 22. The computer-readable medium of claim 12, further including one or more sequences of instructions for performing the steps of:selecting another one or more security policy groups of said plurality of security policy groups for another user based on context information associated with said other user; restricting access of said other user to said database schema object based on policies reflected in said selected other one or more security policy groups; and wherein said other one or more security policy groups and said first set of one or more security policy groups selected for said first user are not identical.
RELATED APPLICATION
This application is a continuation-in-part of U.S. application Ser. No. 09/167,092, filed Oct. 5, 1998, now U.S. Pat. No. 6,487,552 entitled “Database Fine-Grained Access Control”, herein referred to as Lei, and naming as inventors Chon Hei Lei and Douglas James Mcmahon, the entire disclosure of which is hereby incorporated by reference.
US Referenced Citations (12)
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
09/167092 |
Oct 1998 |
US |
Child |
09/589602 |
|
US |