General - Do you know every object name should be owned by dbo?
Updated by Brook Jeynes [SSW] 1 year ago. See history
123
The reason is that you avoid ownership chain problems. Where Mary owns an object, Fred can read the object and then he creates a proc and he gives permission to Tom to execute. But Tom cannot because there is a product chain of ownership.
CREATE PROCEDURE [Adam Cogan].[Sales by Year]@Beginning_Date DateTime,@Ending_Date DateTime ASSELECT Orders.ShippedDate,Orders.OrderID,"vwOrderSubTotals".Subtotal,DATENAME(yy,ShippedDate) AS YearFROM OrdersINNER JOIN "vwOrderSubTotals"ON Orders.OrderID = "vwOrderSubTotals".OrderIDWHERE Orders.ShippedDate Between @Beginning_Date And @Ending_Date
❌ Figure: Figure: Bad Example
CREATE PROCEDURE [dbo].[Sales by Year]@Beginning_Date DateTime,@Ending_Date DateTime ASSELECT Orders.ShippedDate,Orders.OrderID,"vwOrderSubTotals".Subtotal,DATENAME(yy,ShippedDate) AS YearFROM OrdersINNER JOIN "vwOrderSubTotals"ON Orders.OrderID = "vwOrderSubTotals".OrderIDWHERE Orders.ShippedDate Between @Beginning_Date And @Ending_Date
✅ Figure: Figure: Good Example