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



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

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

选择somedatabase.dbo.udf_getInfo ()

因此,换句话说,只有标量函数udf_getInfo应该对每个人都可以访问,并且这个标量值函数将读取一些数据库信息,执行该函数的用户没有直接访问权限。

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.

最新更新