我有删除表上的触发器,其中我使用函数HOST_NAME()来检索执行操作的用户,然后我检查用户存在用户表中如果不是那么我扔Raiserror。动作是从ASP.NET Web应用程序中执行的,我将动态地将“Workstation Id”添加到连接字符串,以便在删除触发器中具有当前记录的用户名。
修改HOST_NAME()在sql服务器
问题是我有时必须从SSMS手动运行一些脚本,并且Host_Name()包含当前登录的用户在sql server中的名称,但该用户在用户表中没有相应的行,然后发生Raiserror。问题是如何从SSMS运行删除脚本并且没有Rairserror?
只是为了澄清:你想修改一个系统函数,以便触发器允许未经授权的用户运行删除脚本?我真的很茫然。如果你找到了一个方法来做到这一点,让我知道,以便我可以找到一种方法来抵御它。 – JAQFrost 2012-04-26 13:48:12
澄清:我创建了这个问题,因为我动态地添加“工作站ID”连接字符串从我的Web应用程序已记录用户名在删除triger(然后我检查名称存储在用户表的Host_Name(),然后我做一些SQL ),但有时候我必须运行一些在用户表中没有对应行的帐户。休息一段时间后,我发现了溶剂,我创建了自己的函数,在其中检查Host_Name(),如果用户名不存在于用户表中,但名称等于xyz,则从用户表中返回用户。我希望你现在明白我的问题。 – 2012-04-26 18:41:50
我这么认为:你并不是真的想改变系统功能,你想把它包装在一个自定义函数中,该函数返回脚本应该运行的用户。请相应地编辑你的帖子,并回答你做了什么来得到你想要的。 – JAQFrost 2012-04-27 13:25:23