2010-01-08 48 views
0

我想在運行時更改晶體報告中存儲過程的所有者(即dbo)。可能嗎? TIA是否可以在運行時更改Crystal報表中的SP的所有者?

UDP 可能需要澄清。我有一個有很多子報告的報告。我必須將這份報告與其他數據庫一起使用。所以我需要在運行時更改存儲過程的方案而不更改DB上的任何內容。

我應該使用SetDataSource()方法還是有其他更多相應的更改方案任務?

+0

作爲所有者您是指連接到數據庫? – RvdK 2010-01-08 08:55:53

回答

0

您可以使用EXECUTE AS子句更改所有者而達到預期效果。

CREATE PROCEDURE dbo.TestProcedure 
WITH EXECUTE AS OWNER 

主要有五種類型的模擬的,可用於:

  • SELF - 指定的用戶爲創建或更改模塊
  • 來電的人 - 這將需要對權限當前用戶
  • OWNER - 這將需要在模塊的所有者的權限被稱爲
  • 「USER_NAME」 - 特定用戶
  • 「LOGIN_NAME」 - 特定的登錄

見Sommarskog的標準基準:Giving Permissions through Stored Procedures

0

要回答原來的問題,你可以使用sp_changeobjectowner系統存儲過程改變一個對象的所有者在數據庫中。

相關問題