У меня проблема в моем проекте MVC. В общем, я хотел, чтобы мой проект ASP.NET MVC использовал две разные базы данных. Эти две базы данных являются идентичными, а именноORA-01031: ошибка недостаточных привилегий в asp.net mvc
а) количество таблиц,
б) наименование таблиц,
с) структура столбца таблиц одинаковы. Одна из них - производственная база данных, другая - тестовая база данных.
Как вы знаете, информация, подключение к базе данных производства определяется в 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: ошибка недостаточных привилегий Как я могу ее преодолеть?
Заранее спасибо.
Update 1:
Мы испробовали все опции привилегий, но никакого решения. Только решение, которое мы можем найти, разделяет исходный код на три разные папки: «Dev», «Test» и «Live». Я копирую каждый элемент кода в тестовую папку, и я удаляю файл edmx, и я воссоздаю его в папке Test, и он работает.
Имея одинаковое количество таблиц и имен does't делают две базы данных идентичны. Вы должны проверить, имеет ли подключаемый пользователь соответствующие привилегии в тестовой базе данных, которую вы пытаетесь подключить. Используйте 'select * from dba_role_privs, где requestee = 'USERTEST'', чтобы проверить предоставленные привилегии для пользователя. – JSapkota
Вы выполнили 'GRANT ALL ON TO [USERIDTEST] WITH GRANT OPTION' на другой базе данных сущностей, чтобы предоставить ему' USERIDTEST' полные привилегии? Ошибка 01031, которую может выбросить из EF, пыталась создать таблицу у данного пользователя, которая имеет недостаточную привилегию. –
Jsapkota; "select * from dba_role_privs" выдает мне сообщение об ошибке "ORA-00942: таблица или представление не существует". Есть ли проблема с запросом? – tahasozgen