我在我的MVC項目中遇到問題。總之,我想讓我的ASP.NET MVC項目使用兩個不同的數據庫。這兩個數據庫是相同的,即ORA-01031:在asp.net mvc中沒有足夠的權限錯誤
一)數表,
b)中的表的名稱,
c)中的表的列結構相同。其中一個是生產數據庫,另一個是測試數據庫。
如你所知,生產數據庫連接信息在數據應用的App.Config中定義:
<add name="SampleEntities" connectionString="metadata=res://*/VeriKlasoru.CptModel.csdl|res://*/VeriKlasoru.CptModel.ssdl|res://*/VeriKlasoru.CptModel.msl;provider=Oracle.ManagedDataAccess.Client;provider connection string="DATA SOURCE=SOURCE;PASSWORD=PASSWORD;USER ID=USERID"" providerName="System.Data.EntityClient" />
我添加測試數據庫連接信息,只是在它下面:
<add name="SampleEntitiesTest" connectionString="metadata=res://*/VeriKlasoru.CptModel.csdl|res://*/VeriKlasoru.CptModel.ssdl|res://*/VeriKlasoru.CptModel.msl;provider=Oracle.ManagedDataAccess.Client;provider connection string="DATA SOURCE=SOURCE;PASSWORD=PASSWORDTEST;USER ID=USERIDTEST"" providerName="System.Data.EntityClient" />
和我改變edmx文件的代碼就像這樣:
public CptEntities()
: base("name=SampleEntitiesTest") //It was SampleEntities
{
Database.SetInitializer<CptEntities>(null);
}
當我嘗試連接數據庫時,出現錯誤,ORA-01031:特權不足錯誤我該如何克服它?
在此先感謝。
更新1:
我們想盡一切特權選項,但沒有解決方案。我們唯一能找到的解決方案是將源代碼分成三個不同的文件夾,「Dev」,「Test」和「Live」。我將每個代碼項目複製到Test文件夾中,然後刪除edmx文件,然後在Test文件夾中重新創建它,並且它可以工作。
有表和名字開不使兩個數據庫相同的類似號碼。您必須檢查連接用戶是否對您嘗試連接的測試數據庫具有適當的權限。使用'select * from dba_role_privs where grantee ='USERTEST''查詢來檢查授予用戶的權限。 – JSapkota
你有沒有執行過'授予選項'[USERIDTEST]在其他實體數據庫上的所有'給'USERIDTEST'完整的權限呢?可能從EF引發的01031錯誤是試圖在給定用戶下創建表,但具有不充分的特權。 –
Jsapkota; 「select * from dba_role_privs」引發錯誤「ORA-00942:表或視圖不存在」錯誤。查詢有問題嗎? – tahasozgen