【发布时间】:2014-03-03 19:04:35
【问题描述】:
我在 asp classic 中遇到了默认架构和 sql 问题。首先,我有一个数据库'MyDatabase',这个数据库有模式'MySchema'(所有表都在这个模式中),还有一个用户'jdoe'对'MyDatabase'具有特权并且具有默认模式'MySchema', 'jdoe' 不是系统管理员。 “jdoe”可以从管理工作室执行以下查询而不会出错:
SELECT columnOne FROM MyTable
相同的查询,但从 .asp 页面找不到 MyTable:
Dim query
query = "SELECT ColumnOne FROM MyTable"
Asp 页面正在使用 ADODB.Command 和用户“jdoe”。如果我明确指定架构,查询将返回结果:
Dim query
query = "SELECT ColumnOne FROM MySchema.MyTable"
我搜索了网络,但所有答案都说相同:将默认模式分配给“jdoe”,但我做到了,并使用服务器中的 t-sql 或存储过程之类的数据库,但不适用于像我这样的查询asp 页面。
是否存在一些特殊配置?
谢谢。
【问题讨论】:
-
您是否以这种方式更改了默认架构?
ALTER USER MyUser WITH DEFAULT_SCHEMA = MySchema如果不尝试,然后看看它是否有效。还要验证您正在修改您从应用程序连接的正确用户。 -
是的,我做到了,但只适用于服务器上的代码,它仍然不能从 asp 页面工作。在分配默认架构时,我很关心用户。
-
所以您正在使用您更改默认架构的同一 Windows 用户执行 iis/应用程序池?
-
我已经解决了!!我使用的是 sql server 用户,我配置了这个用户,但它没有用。在我配置了具有相同配置的 Windows 用户并且它可以工作之后!!。
-
如果你解决了,请添加一个答案并点击复选标记接受它 - 在这里回答你自己的问题是完全可以的。
标签: sql asp-classic sql-server-2012 database-schema adodb