我们有一个 MVC 应用程序,它利用 ELMAH 模块记录用户遇到的任何错误。
我们的 DBA 已将我们的 ELMAH 表和存储过程移动到数据库上的新模式中。所以现在,默认的 ELMAH 页面无法访问 ELMAH 存储过程和表,因为它们位于“Foo.ELMAH_Error”下,而不仅仅是“ELMAH_Error”。
有没有办法告诉 ELMAH 模块该表现在存在于一个新模式中?
我们有一个 MVC 应用程序,它利用 ELMAH 模块记录用户遇到的任何错误。
我们的 DBA 已将我们的 ELMAH 表和存储过程移动到数据库上的新模式中。所以现在,默认的 ELMAH 页面无法访问 ELMAH 存储过程和表,因为它们位于“Foo.ELMAH_Error”下,而不仅仅是“ELMAH_Error”。
有没有办法告诉 ELMAH 模块该表现在存在于一个新模式中?
最后,我通过创建一个可以完全访问 ELMAH 过程和表的新用户来实现这一点。我将用户的默认数据库设置为新模式。
这个解决方案似乎运作良好。
您可以为 ELMAH 相关对象创建同义词,如下所示: 以下是 SQL Server。如果您使用任何其他数据库,则可以应用类似的更改,但可能需要对语法进行一些更改。
Create synonym ELMAH_Error for [YourSchema].ELMAH_Error;
Create synonym ELMAH_GetErrorsXml for [YourSchema].ELMAH_GetErrorsXml;
Create synonym ELMAH_GetErrorXml for [YourSchema].ELMAH_GetErrorXml;
Create synonym ELMAH_LogError for [YourSchema].ELMAH_LogError;
在此之后,ELMAH 日志到 sql 将照常工作。