2014-02-06 69 views
0

我在asp classic中遇到了默認架構和sql問題。首先,我有一個數據庫'MyDatabase',這個數據庫有'MySchema'模式(所有表都在這個模式中),還有一個用戶'jdoe',它具有'MyDatabase'特權和默認模式'MySchema'的特權, 'jdoe'不是系統管理員。 'JDOE' 可以從Management Studio中執行以下查詢沒有錯誤:默認架構不適用於asp classic中的select查詢

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" 

我在網上搜索,但所有的答案說的一樣:ASIGN默認模式爲「JDOE」,但我做到了,在與T-SQL的工作原理服務器或dabatase像存儲過程,但不能像我在asp頁面中使用querys一樣工作。

是否存在一些特殊的配置?

謝謝。

+0

您是否以這種方式更改默認模式? 'ALTER USER MyUser WITH DEFAULT_SCHEMA = MySchema'如果不嘗試,看看它是否在那之後工作。同時驗證您是否正在修改您從應用程序連接的正確用戶。 – 2014-02-06 18:47:22

+0

是的,我這樣做,但只適用於服務器上的代碼,它仍然不能從asp頁面工作。在分配默認模式時,我關心用戶。 – Noob

+0

所以你正在執行iis /應用程序池與你改變默認架構的Windows用戶相同嗎? – ulluoink

回答

0

解決:

我不知道發生了什麼,我更改SQL Server用戶JDOE「通過Windows用戶(域\用戶)和它的作品,我配置了Windows用戶以同樣的方式,分配默認架構並且沒有系統管理員權限。 從asp頁面我使用了Windows身份驗證的DSN,並從IIS中配置了網站安全目錄以允許匿名訪問,並使用了我在sql server中使用的相同用戶。