【问题标题】:Default schema is not working with select query in asp classic默认架构不适用于 asp classic 中的选择查询
【发布时间】: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


【解决方案1】:

已解决:

我不知道发生了什么,我通过 windows 用户(域\用户)更改了 sql server 用户 'jdoe' 并且它可以工作,我以相同的方式配置 windows 用户,分配默认架构并且没有系统管理员权限。 在 ASP 页面中,我使用了带有 Windows 身份验证的 DSN,在 IIS 中,我配置了网站安全目录以允许匿名访问,并且我使用了在 sql server 中使用的相同用户。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 2022-06-23
    • 1970-01-01
    相关资源
    最近更新 更多