2011-11-21 75 views
0

我在SQL Server 2008 R2的数据库中有一个函数,它根据第一个参数调用另一个函数。函数的SQL Server访问修饰符

像这样:

SELECT dbo.usp_Function1( 'customerX',...)

这需要不同的功能usp_Function1CustomerX,这是具体到一个客户。

事情是,我不希望任何人能够从数据库外部调用usp_Function1CustomerX

更确切的说:我不希望这个函数从visual studio或任何OR映射器的代码中调用。这就像在SQL Server中为我的函数使用(c#term)内部访问修饰符一样。

任何想法如何做到这一点?

谢谢, 罗伯特

EDIT从存储过程更改示例起作用

+0

难道你不是指存储过程?不起作用。在SQL Server中完全不同 – gbn

+0

你是对的,它们是不同的。我确实需要这两个。我想我的例子可能会导致一些混淆 –

回答

0

溶液1

每个SP具有许可部,其可以修改以适应。

解决方案2

你可以设置了一个param添加到将内部检查FUNC。

+0

我可能误解了该函数的权限属性:我可以指定一个数据库角色(如public,guest或特定用户)并设置权限,如alter,control ...等。我将如何能够将可见性改变到外部? 解决方案2:您是否建议某种特定参数中的“魔术”值? –