You administer a Microsoft SQL Server 2012 database. The database has a table named Customers owned by UserA and another table named Orders owned by UserB.
You also have a stored procedure named GetCustomerOrderInfo owned by UserB. GetCustomerOrderInfo selects data from both tables.
You create a new user named UserC.
You need to ensure that UserC can call the GetCustomerOrderInfo stored procedure.
You also need to assign only the minimum required permissions to UserC.
Which permission or permissions should you assign to UserC? Choose all that apply.
A. The Select permission on Customers
B. The Execute permission on GetCustomerOrderInfo
C. The Take Ownership permission on Customers
D. The Control permission on GetCustomerOrderInfo
E. The Take Ownership permission on Orders
F. The Select permission on Orders
Sample Test :
CREATE DATABASE Test
USE Test
CREATE USER USERA without login
EXECUTE AS USER = ‘USERA’
REVERT
CREATE TABLE Customers
(
CustomerID INT PRIMARY KEY NOT NULL,
Name VARCHAR(50),
Age int
)
CREATE USER USERB WITHOUT LOGIN
EXECUTE AS USER =’USERB’
CREATE TABLE Orders
(
OrderID INT PRIMARY KEY NOT NULL,
CustomerID INT FOREIGN KEY REFERENCES Customers(CustomerID),
Item VARCHAR(50),
Qty INT
)
CREATE PROCEDURE GetCustomerOrderInfo
AS
SELECT Customers.CustomerID, OrderID, Name, Item, Qty FROM Customers
INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID
REVERT
CREATE USER USERC WITHOUT LOGIN
EXECUTE AS USER = ‘USERC’
EXECUTE GetCustomerOrderInfo
GRANT EXECUTE ON OBJECT::GetCustomerOrderInfo TO USERC
Correct Answer: B
why not A,B and F