1. A system for facilitating a secure database, the system comprising:
a memory having stored therein computer executable components;
a first component that creates a table with a security descriptor column;
a second component that creates a security descriptor store associated with the table, wherein the security descriptor store comprises at least one security descriptor that includes access information, permission that identifies a kind of access associated with the at least one security descriptor, and one or more principals to whom the at least one security descriptor applies, wherein the one or more principals include at least one of one or more user names, one or more groups of users, one or more user identifiers, or one or more types of users;
a third component that populates at least one row of the table with a security descriptor identifier;
a fourth component that receives a query and user context information;
a fifth component that associates a row of the table with security information, wherein the table comprises at least one row and at least two columns, wherein one of the at least two columns stores a security descriptor associated with the row of the table, wherein the security descriptor associated with the row of the table identifies the security information stored in the security descriptor store, wherein the security descriptor associated with the row of the table is included in all access paths to the table, and wherein access paths to the table include at least one of following: an access path to the table stored as an un-ordered collection; an access path to a clustered index on the table; an access path to a non-clustered index on the table; or an access path to materialized views defined on the table;
a sixth database engine component that provides a response to the query, wherein the response comprises rows, if any, that satisfy the query, and wherein the security information associated with the row of the table is satisfied by the user context information;
a seventh query component that determines an optimal way to answer the query based on a cost-based optimization strategy, wherein the query is optimized prior to providing the response; and
a processor that executes the computer executable components.
2. The system of claim 1, wherein the access information includes whether access is granted or denied.
3. The system of claim 2, wherein the permission that identifies the kind of access associated with the at least one security descriptor includes no access permission, read only access permission, and readwrite access permission.
4. The system of claim 1, wherein information stored in the security descriptor associated with the row comprises a kind of access granted or denied to a principal.
5. The system of claim 1, wherein information stored in the security descriptor store comprises a kind of access.
6. The system of claim 1, wherein information stored in the security descriptor store comprises a principal to whom the security information applies.
7. The system of claim 1, wherein the at least one security descriptor is an ordered set of access control entities.
8. A computer-implemented method for facilitating a secure database, the method comprising:
creating a table with a security descriptor column;
storing the table in a memory utilizing a processor;
creating a security descriptor store associated with the table, wherein the security descriptor store comprises at least one security descriptor that includes access information, permission that identifies a kind of access associated with the at least one security descriptor, and one or more principals to whom the at least one security descriptor applies, wherein the one or more principals includes at least one of one or more user names, one or more groups of users, one or more user identifiers, or one or more types of users;
populating at least one row of the table with a security descriptor identifier; receiving a query and user context information;
associating the at least one row of the table with security information, wherein the table comprises one or more rows and at least two columns, wherein one of the at least two columns stores a security descriptor associated with the at least one row of the table, wherein the security descriptor associated with the at least one row of the table identifies the security information stored in the security descriptor store, wherein the security descriptor associated with the at least one row of the table is included in all access paths to the table, and wherein an access path to the table includes at least one of following: an access path to the table stored as an un-ordered collection; an access path to a clustered index on the table; an access path to a non-clustered index on the table; or an access path to materialized views defined on the table;
providing a response to the query, wherein the response comprises rows, if any, that satisfy the query, and wherein the security information associated with the at least one row of the table is satisfied by the user context information; and
providing a query optimizer that determines an optimal way to answer the query, wherein the query is optimized prior to providing the response, and wherein the query optimizer employs a cost-based optimization strategy.
9. The method of claim 8, wherein providing a response to the query comprises:
for each row of the table accessed, determining whether a security descriptor associated with the row is satisfied by the user context information.
10. The method of claim 8, wherein the database is provisioned independent of the security information stored in the security descriptor.
11. The method of claim 8, wherein the access information includes whether access is granted or denied.
12. The method of claim 8, wherein the permission that identifies the kind of access associated with a security descriptor includes no access permission, read only access permission, and readwrite access permission.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A water heater control system for a water heater comprising:
a system controller;
at least one relay electrically connected to the system controller;
at least one thermal sensor electrically connected to the system controller to monitor water temperature in the water heater;
at least one heating element electrically connected to the at least one relay, the at least one heating element capable of beating water in the water heater to a first predetermined temperature,
wherein the system controller maintains the water temperature between the first predetermined temperature and a second predetermined temperature during at least one predetermined time of day, the predetermined time of day being determined by the system controller based on water use from the water heater, the second predetermined temperature being higher than an ambient temperature and lower than the first predetermined temperature.
2. The water heater control system of claim 1, wherein the system controller is programmable.
3. The water heater control system of claim 2, wherein a user may program at least two temperature cycles into the system controller.
4. The water heater control system of claim 1, wherein the controller has a visual display.
5. The water heater control system of claim 1, wherein the system controller may be remotely programmed.
6. A method for controlling water temperature in a water heater comprising the steps of:
heating water in the water heater to a first predetermined water temperature;
monitoring the water temperature in the water heater at at least one location;
determining a time of day; and
energizing at least one heating element to raise the water temperature in the water heater to the first predetermined temperature when the water temperature at the at least one location falls below a second predetermined water temperature only when the time of day is within at least one predetermined time period.
7. The method for controlling water temperature in a water heater according to claim 6, wherein the second predetermined water temperature is above an ambient temperature.
8. The method for controlling water temperature in a water heater according to claim 6, wherein the at least one predetermined time period is programmed by a user.
9. The method for controlling water temperature in a water beater according to claim 6, wherein the at least one predetermined time period is based on use of hot water from the water heater and determined by a controller associated with the water heater.
10. The method for controlling water temperature in a water heater according to claim 6, further comprising the step of:
energizing the at least one heating element to raise the water temperature to a third predetermined temperature after the water temperature falls below a fourth predetermined temperature when the time of day is not within the at least one predetermined time period.
11. The method for controlling water temperature in a water heater according to claim 10, wherein the third predetermined temperature is lower than the second predetermined temperature and higher than the fourth predetermined temperature.
12. The method for controlling water temperature in a water heater according to claim 10, wherein the at least one predetermined time period is based on use of hot water from the water heater and determined by a controller associated with the water heater.
13. The method for controlling water temperature in a water heater according to claim 10, wherein the at least one predetermined time period comprises at least two predetermined time periods in a single 24 hour period.
14. The method for controlling water temperature in a water heater according to claim 13, wherein the at least two predetermined time periods are of different durations.
15. The method for controlling water temperature in a water heater according to claim 6, wherein the at least one predetermined time period is less than 6 hours long.