WP3 Authorisation Steve Fisher / RAL 2/4/2003
WP3 Steve Fisher/RAL - 2/4/2003Authorisation2 I don’t think I disagree (much) with Linda Control must be at the level of views on the database –Very compact –Very powerful
WP3 Steve Fisher/RAL - 2/4/2003Authorisation3 Example - people Doctor: Select sanity for his patients Anybody: select average salary for people in GB Friend: phone number People NameAddressPhone #SalarySanityDoctor FredGB160.1Seuss BillCH3600.5Spock MaryD4500.9Spock
WP3 Steve Fisher/RAL - 2/4/2003Authorisation4 Example - doctor View –Name, Address, Phone, Sanity from People where Doctor = “Spock” –Name, Address, Phone, Sanity from People where Doctor = “{DN}” Good Query –Select Name, Sanity from People where Doctor = “Spock” Bad Query –Select Name, Salary from People where Doctor = “Spock” What about –Select Name, Sanity from People where Name = “Bill” People NameAddressPhone #SalarySanityDoctor FredGB160.1Seuss BillCH3600.5Spock MaryD4500.9Spock Doctor: Select sanity for his patients
WP3 Steve Fisher/RAL - 2/4/2003Authorisation5 Example - doctor View –Name, {AGGREGATE}(Salary) where Country = “{*}” Good Query –Select Avg(Salary) from People where Country = “GB” People NameAddressPhone #SalarySanityDoctor FredGB160.1Seuss BillCH3600.5Spock MaryD4500.9Spock Anybody: select average salary for people in GB
WP3 Steve Fisher/RAL - 2/4/2003Authorisation6 Example - doctor View –P.Name, P.Phone, P.Address from People P, Friend F where P.Name = F.Name and F.Friend = “{DN}” Good Query –Select P.Name, P.Phone from People P, Friend F where P.Name = F.Name and F.Friend = “Mary” and P.Name=“Bill” Bad Query –Select P.Name, P.Phone from People P, Friend F where P.Name = F.Name and F.Friend = “Bill” and P.Name=“Mary” People NameAddressPhone #SalarySanityDoctor FredGB160.1Seuss BillCH3600.5Spock MaryD4500.9Spock Friend: phone number Friend NameFriend FredBill Fred BillMary