【问题标题】:Specifying granted permissions to SQL CLR User Defined Functions for deployment指定授予 SQL CLR 用户定义函数的权限以进行部署
【发布时间】:2012-12-04 18:34:55
【问题描述】:

我在 .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]

谢谢。

【问题讨论】:

    标签: .net sqlclr database-permissions


    【解决方案1】:

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

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

    【讨论】:

    • 嗯,这仍然是一个手动过程,但它似乎与我将得到的一样接近。感谢您的回答。
    猜你喜欢
    • 2012-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-13
    • 1970-01-01
    • 2019-02-13
    • 2011-02-13
    • 1970-01-01
    相关资源
    最近更新 更多