执行(实际上是SELECT)用户定义的函数到EVERYONE

时间:2015-10-12 03:12:58

标签: sql sql-server

我们已经创建了一个UDF,现在这个从一些受限制的数据库获取信息,并且还读取受限数据库的扩展属性。我们希望保留受限制的数据库,即不能直接访问这些数据库。

但是,我们希望每个人(我的意思是每个经过身份验证的SQL用户)能够像这样运行此缩放器UDF:

选择somedatabase.dbo.udf_getInfo()

换句话说,只有每个人都可以访问缩放器函数udf_getInfo,这个缩放器值函数将读取一些数据库信息,执行的用户无法直接访问。

1 个答案:

答案 0 :(得分:0)

use YourDbName
GO

-- only one of these is correct 
GRANT SELECT on dbo.udf_getinfo() TO public 
GO
-- only one of these is correct 
GRANT EXEC  on dbo.udf_getinfo() TO public 
GO


-- YOU MUST HAVE PERMISSION also - AND - you need to have the GRANT on it to give the permission.