我在我的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