PrepAway - Latest Free Exam Questions & Answers

Which Transact-SQL statement should you use?

You administer a Microsoft SQL Server 2012 database named ContosoDb. The database contains a
table named Suppliers and a column named IsActive in the Purchases schema. You create a new user
named ContosoUser in ContosoDb. ContosoUser has no permissions to the Suppliers table. You need
to ensure that ContosoUser can delete rows that are not active from Suppliers. You also need to
grant ContosoUser only the minimum required permissions. Which Transact-SQL statement should
you use?

PrepAway - Latest Free Exam Questions & Answers

A.
GRANT DELETE ON Purchases.Suppliers TO ContosoUser

B.
CREATE PROCEDURE Purchases.PurgeInactiveSuppliers
WITH EXECUTE AS USER = ‘dbo’
AS
DELETE FROM Purchases.Suppliers WHERE IsActive = 0
GO
GRANT EXECUTE ON Purchases.PurgelnactiveSuppliers TO ContosoUser

C.
GRANT SELECT ON Purchases.Suppliers TO ContosoUser

D.
CREATE PROCEDURE Purchases.PurgeInactiveSuppliers
AS
DELETE FROM Purchases.Suppliers WHERE IsActive = 0
GO
GRANT EXECUTE ON Purchases.PurgeInactiveSuppliers TO ContosoUser

Explanation:
http://msdn.microsoft.com/en-us/library/ms188354.aspx
http://msdn.microsoft.com/en-us/library/ms187926.aspx

6 Comments on “Which Transact-SQL statement should you use?

  1. mike says:

    Can you explain why D is correct? The default execution of a stored procedure is ‘as caller’. So this user without having permissions in the underlying table, won’t be able successfully run this procedure????




    0



    0

Leave a Reply