Lorsque j'essaie de créer une vue incluant différentes tables, l'erreur suivante s'affiche: Erreur sur la ligne 1: ORA-01031 Privilèges insuffisants.
Quelqu'un pourrait-il me dire quel pourrait être le problème? J'ai essayé de suivre un autre poste de stackoverflow mentionné ici, mais il concerne différents schémas.
ORA-01031: privilèges insuffisants lors de la sélection de l'affichage
S'il vous plaît laissez-moi savoir que je suis nouveau ici.
Ma requête est la suivante:
Question originale: Créez une vue pour sélectionner l'ID d'employé, le nom de l'employé, la date d'embauche et le numéro de département.
Ma solution:
CREATE VIEW SIMPVIEW AS
SELECT EMPNO, ENAME, HIREDATE,DEPTNO
FROM EMP;
Dans ce cas, vous n’avez probablement pas les privilèges nécessaires pour exécuter la commande CREATE VIEW
dans votre schéma de base de données ... Connectez-vous au compte SYSDBA et exécutez la commande.
GRANT CREATE VIEW TO <dbusername>;
Ici, <dbusername>
doit être remplacé par le nom de l'utilisateur auquel vous souhaitez donner accès à la commande CREATE VIEW
.
Vous pouvez vérifier si votre utilisateur dispose des privilèges de création VIEW
à l'aide de select * from session_privs
.
Notez que pour pouvoir créer une vue, l'utilisateur qui la crée doit avoir reçu les privilèges SELECT
sur tous les objets utilisés, ainsi que le privilège CREATE VIEW
mentionné. Vous pouvez également vérifier cela en interrogeant USER_TAB_PRIVS
auprès de l’utilisateur qui obtient l’erreur.
lorsque je voulais exécuter la requête ci-dessus dans SQL Developer, je rencontrais des problèmes car je ne disposais pas de suffisamment de privilèges pour créer une vue ou un autre schéma d'objet Oracle tel qu'un déclencheur, des packages, des procédures, etc. : ORA-01031 Privilèges insuffisants ». donc, j'avais besoin de tous les privilèges pour pratiquer toutes ces requêtes et programmes. J'ai pris les mesures suivantes afin de résoudre mon problème:
a) Dans l’exécution de la fenêtre, j’ai tapé cmd pour ouvrir l’invite de commande. J'ai tapé: sqlplus/nolog, ce qui signifie que je me suis connecté sans fournir les informations d'identification requises.
b) Je me suis authentifié pour le système d'exploitation sous-jacent et entré dans la base de données en tant que DBA. Pour cela, j'ai tapé la commande Invite: connect/as sysdba; C. J'ai évalué l'identité de l'utilisateur DBA de ma base de données, le cas échéant. Pour cela j'ai tapé: select name from V $ database; d) Ici nous allons après cette commande. Je me suis finalement accordé (scott) à créer une vue dans SQL Developer en tapant la commande: grant create view to scott; E) Enfin, je me suis accordé tous les privilèges en tapant: grant all all privilèges to scott;
Instantané d'invite de commande: je l'ai joint.
Enfin, j'ai exécuté et créé ma vue: j'ai joint
Vous devez donner à l’utilisateur le privilège de choisir n’importe quel tableau. Ensuite, la vue sera compilée avec succès. Pas besoin d'accorder explicitement la sélection à l'utilisateur à tous les objets.