Ora-01031 недостаточные привилегии при создании представления?
когда я пытаюсь создать представление, включающее разные таблицы, я получаю следующую ошибку: Ошибка в строке 1: ORA-01031 недостаточные привилегии.
может ли кто-нибудь сказать мне, в чем может быть проблема. Я попытался следовать другому сообщению stackoverflow, упомянутому здесь, но это относится к различные схемы.
ORA-01031: недостаточно привилегий при выборе view
пожалуйста, дайте мне знать, как я здесь.
Мой Запрос это так:
исходный вопрос: создайте представление для выбора идентификатора сотрудника, имени сотрудника, даты найма и номера отдела.
МОЕ РЕШЕНИЕ:
CREATE VIEW SIMPVIEW AS
SELECT EMPNO, ENAME, HIREDATE,DEPTNO
FROM EMP;
4 ответов
тогда, вероятно, у вас может не быть привилегий для выполнения в схеме базы данных... Войдите в учетную запись SYSDBA и введите команду
GRANT CREATE VIEW TO <dbusername>;
здесь <dbusername>
следует заменить именем пользователя, которому вы хотите предоставить доступ к
вы можете проверить, если пользователь имеет VIEW
создание привилегий с помощью select * from session_privs
.
обратите внимание, что для создания представления пользователь, который его создает, должен быть предоставлен SELECT
права на все используемые объекты, а также упомянул CREATE VIEW
привилегии. Вы также можете проверить это, запросив USER_TAB_PRIVS
С пользователем получаю ошибку.
вы должны предоставить пользователю право выбора любой таблицы. Затем представление будет успешно скомпилировано. Нет необходимости явно предоставлять пользователю select для всех объектов.
когда я хотел выполнить вышеуказанный запрос в SQL developer, я столкнулся с проблемами, поскольку у меня не было достаточно прав для создания представления или другой схемы объекта oracle, такой как триггер, пакеты, процедуры и т. д. Я нашел ошибку, т. е. "ошибка в строке 1: Ora-01031 недостаточные привилегии". Итак, мне нужны были все привилегии, чтобы практиковать все эти запросы и программы. Я предпринял следующие шаги, чтобы решить свою проблему:
- как я вошел в систему как имя пользователя "Скотт", так что мое имя это "Скотт", а не "Дхрув". Моя амбиция состояла в том, чтобы предоставить все привилегии мне, т. е. пользователю "scott".
- для этого мне нужно ввести в базу данных как DBA. Теперь вопрос в том! Как войти в систему как DBA. Для этого я открыл командную строку и вошел в базу данных как sysdba, выполнив следующие шаги:
a) в окне запуска я набрал cmd, чтобы открыть командную строку. Я набрал: sqlplus / nolog, что означает, что я вошел в систему без предоставления необходимых учетных данных.
си) Я аутентифицировал себя для моих базовых O / S и вошел в базу данных как DBA. Для этого я набрал в командной строке: connect / as sysdba;
c) я оценил, кто является пользователем DBA в моей базе данных, если он существует. Для этого я набрал: выберите имя из V$database;
д) Здесь мы идем после этой команды. Наконец, я предоставил себе (scott) для создания представления в SQL developer, введя команду: grant create view to scott;
e) наконец, я предоставил себе все привилегии, набрав: предоставьте все привилегии Скотту;
снимок командной строки: я прикрепил.
наконец, я выполнил и создал свой вид: я прикрепил