2

我在 .NET 2.0 中创建了一个用户定义的函数,并且能够成功地将它部署到我的本地 SQL Server 实例。但是,我需要授予EXECUTE该功能的特定用户权限。我希望这在 CLR 方法本身中完成,这样我就不必在每次重新部署 UDF 时手动重新授予权限。从 Visual Studio 部署 CLR 函数会在数据库中生成此函数:

ALTER FUNCTION [dbo].[MyFunction](@input [nvarchar](max))
RETURNS [nvarchar](max) WITH EXECUTE AS CALLER
AS 
EXTERNAL NAME [LibName].[UserDefinedFunctions].[MyFunction]
GO

有没有办法让它解决这个问题:

GRANT EXECUTE ON [dbo].[MyFunction] TO [wwwUser] AS [dbo]

谢谢。

4

1 回答 1

1

是的 - 请参阅MSDN - 您只需在项目的根目录中创建一个名为 PostDeployScript.sql 的脚本,它就会自动附加到构建输出中。

请注意,在 VS2012 中,“添加...”对话框有一个选项可以添加“脚本(PostDeployment)”或类似类型的脚本 - 但它会在文件名中添加惯用的“1”,然后就不起作用了。尽管在MSDN中也提到了它,但我并没有费心去寻找,因为第一种方法很有效。

于 2013-01-03T17:11:53.923 回答