2015-11-19 3 views
1

Я создал стол, который является как belows.Недостаточные привилегии в oracle 10g

enter image description here

Структура таблицы выглядит следующим образом:

Create Table advanced 
(Id varchar(15), 
Name varchar(20), 
Dept varchar(15), 
Cgpa float, 
Birth_date date, 
Mob_no int, 
Dist varchar(20), 
Salary number(8)); 

Когда я хочу, чтобы создать представление следующим SQL-плюс дает мне ошибку «недостаточно прав».

Create View advanced_data as 
(
select name,dept,dist,salary from advanced 
); 

Как я могу решить эту проблему?

+2

Как правило, не отбрасывайте код ошибки ORA -.... Это ключевой инструмент для поиска решения. –

ответ

3

Это похоже, что у вашего пользователя нет разрешения на создание представлений.

Чтобы решить эту проблему, выполните следующие действия: Войдите в sqlplus пользователем sys как sysdba, а затем запустите эту команду.

GRANT CREATE VIEW TO <user Name>; 
GRANT CREATE ANY VIEW TO <user Name>; 

Oracle DBA Blog ора-01031: «Недостаточно прав» ошибка возникает при попытке выполнить программу или функцию, для которой вы не были предоставлены соответствующие льготы.

Для администратора базы данных ORA-01031 может произойти, если исполняемые файлы ОС не имеют прав на чтение и выполнение (например, (770) в UNIX/Linux) и убедитесь, что пользователь oracle является членом группы dba (например,/etc/group). Аналогичное разрешение существует в реестре Windows.

Внутри Oracle можно избежать ошибки «ORA-01031: недостаточные привилегии», подписавшись на «как sysdba» с неограниченными привилегиями базы данных.

1

От here:

Чтобы создать представление, вы должны отвечать следующим требованиям:

Вы должны быть предоставлено CREATE VIEW (создать представление в вашей схеме) или CREATE ANY VIEW (для создания представления в другой схеме пользователя) системная привилегия, явно или через роль.

Вы должны быть явно предоставлены SELECT, INSERT, UPDATE или привилегии удалить объект на все базовые объекты, лежащий в основе представления или ВЫБОР ANY TABLE, INSERT ANY TABLE, UPDATE ANY TABLE или DELETE ЛЮБОЙ системы TABLE привилегии. Возможно, вы не получили эти привилегии через роли.

Кроме того, для того, чтобы предоставить другим пользователям доступ к вашему мнению, вы должны получили объектную привилегию (ы) с базовыми объектами с опцией ДОП GRANT или соответствующими системными привилегиями с опцией ADMIN OPTION . Если у вас нет, грантополучатели не могут получить доступ к виду «

Таким образом, вы должны выполнить ниже запрос, чтобы получить разрешение для пользователя, чтобы создать вид:.

GRANT CREATE VIEW TO username 

Oracle docs также явно заявляет что:

владелец схемы, содержащей вид должен иметь привилегии , необходимые для любого выбора, вставки, обновления или удаления строк из всех таблицы или соперничают ws, на котором основан вид. Владелец должен быть предоставил эти привилегии непосредственно, а не через роль.

Смежные вопросы