我们已经创建了一个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.