2012-12-04 26 views
1

我已经创造了.NET 2.0中的用户定义的函数和我能够成功地将其部署到我本地的SQL Server实例。不过,我需要授予对功能的特定用户EXECUTE权限。我想这在CLR方法本身来完成,这样我就不必手动每次我重新部署UDF时重新授予权限。部署从Visual Studio中的CLR函数生成此功能在数据库:指定授予的权限,以SQL 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] 

感谢。

回答

1

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

请注意,在VS2012中,添加...对话框有一个选项可以添加类型为“脚本(PostDeployment)”的脚本或类似脚本 - 但它会将常规“1”添加到文件名中, “T工作。我没有打扰进一步看,虽然它在MSDN也提到了,因为第一种方法只是工作。

+0

嗯,这还是有点一个手动过程,但它似乎是尽可能接近我去拿。感谢你的回答。 – Andy