您可能無法給每個人的管理權限,但也許你可以:
創建一個特殊的用戶,例如'WebTaskUser',有權從所需的視圖中讀取 並執行sp_makewebtask存儲的 過程。你會授予一個用戶權限 - 而不是給每個人。
然後創建一個允許用戶執行的包裝存儲過程,同時包含對sp_makewebtask過程執行特定預定義調用的代碼,每個視圖只執行一次,僅爲該單個sp_makewebtask過程授予執行權限,到一個用戶帳戶 - 並非所有的管理權限都被授予 - 只能執行到一個帳戶:-)。
測試和優化存儲過程根據自己的喜好從SSMS, 訪問,VBA,或什麼最適合你
當你快樂與PROC,授出任何進一步的必要 權限用戶或用戶角色,因此他們可以將其作爲 好好執行。
`
--Example code to create user, and add permissions I might be able to add later
USE [some_database_x];
CREATE PROCEDURE EXPORT_VIEWS_TO_EXCEL
@TARGET_FOLDER NVARCHAR(100) DEFAULT 'C:\temp';
@FILE_TAG NVARCHAR(20) DEFAULT '';
@VIEWNAME NVARCHAR(100);
WITH EXECUTE AS 'WebTaskUser'
AS
BEGIN
IF @VIEWNAME IS NOT NULL
BEGIN
DECLARE @myOUTPUTFILE NVARCHAR(100);
SET @myOUTPUTFILE = @TARGET_FOLDER + '\' + @VIEWNAME + COALESCE(@FILE_TAG,'');
DECLARE @myQUERY NVARCHAR(150);
IF @VIEWNAME = 'mydb.dbo.firstview'
BEGIN
SET @myQUERY = 'Select * from mydb.dbo.firstview',
END
IF @VIEWNAME = 'mydb.dbo.secondview'
BEGIN
SET @myQUERY = 'Select * from mydb.dbo.secondview'
END
EXECUTE sp_makewebtask
@outputfile = @OUTPUTFILE,
@query = @myQUERY,
@colheaders = 1, @FixedFont = 0, @lastupdated = 0, @resultstitle='My Title'
END
RETURN 0;
END
GO
`
你有沒有考慮在這些線路上的東西:http://stackoverflow.com/questions/10812424/writing-copyfromrecordset-to-range/10814046#10814046 ?使用從SQL Server鏈接的表或視圖,您也可以使用各種傳輸選項,TransferSpreadsheet,Transfertext等。 – Fionnuala 2013-01-05 17:28:24