Précédent   Forum des professionnels en informatique > Bases de données > Firebird > SQL
SQL Forum d'entraide sur le SQL pour Firebird
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/01/2011, 16h05   #1
Invité de passage
 
Inscription : septembre 2008
Messages : 11
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 11
Points : 0
Points : 0
Par défaut Voir les vues mais pas les tables

Bonjour à tous,

j'ai une vue qui utilise une table et je voudrais créer un utilisateur qui n'a accès qu'à la vue.
J'ai fais un Grant sur la vue mais quand je veux l'ouvrir il m'en empêche car je n'ai pas de privilège sur la table.

Comment on fait ?

Merci d'avance
Yusuke26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2011, 16h23   #2
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
Donner les droits à la vue sur la table

Vous avez donné les droits à l'utilisateur sur la vue :

Code :
GRANT ALL ON MA_VUE TO MON_UTILISATEUR;
Il vous manque Les droits de la vue sur la table.

Code :
GRANT ALL ON MaTable TO VIEW MA_VUE;
Et je serais vous je ne donnerai pas les droits à un utilisateur mais plutôt à un Role.

Et vous donnez à l'utilisateur le droits d'utiliser le role.
C'est plus rapide pour lui retirer ses droits et mettre les même droits à un autre utilisateur.
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2011, 16h27   #3
Invité de passage
 
Inscription : septembre 2008
Messages : 11
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 11
Points : 0
Points : 0
Citation:
Envoyé par Barbibulle Voir le message
Donner les droits à la vue sur la table
J'y ai pensé mais ça me met toujours le même message d'erreur.
Yusuke26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2011, 16h33   #4
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
Vous avez bien fait comme je l ai indiqué ?
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2011, 16h36   #5
Invité de passage
 
Inscription : septembre 2008
Messages : 11
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 11
Points : 0
Points : 0
Oui mais à la place des ALL j'ai mis des SELECT.
Ça ne marche toujours pas, même en passant par des rôles.

Edit : Pas mieux avec les ALL...
Yusuke26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2011, 16h40   #6
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
Essayez ce que j ai écrit, cela fonctionne.

Ou bien mettez nous ici ce que vous avez écrit comme GRANT
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2011, 16h41   #7
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
C'est une vue qui attaque qu'une seule table ?
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2011, 16h53   #8
Invité de passage
 
Inscription : septembre 2008
Messages : 11
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 11
Points : 0
Points : 0
Code :
1
2
3
4
5
6
7
8
9
CREATE USER USER1 PASSWORD 'xxxx';
 
CREATE ROLE ROLE1;
 
GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE ON VUE1 TO ROLE1;
 
GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE ON TABLE1 TO VUE1;
 
GRANT ROLE1 TO USER1;

Oui elle n'attaque qu'une table, c'est une requête toute simple SELECT champ1, champ2 FROM TABLE1 WHERE champ1 = 'xxxx';
Yusuke26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2011, 16h54   #9
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE ON TABLE1 TO VIEW VUE1;
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2011, 17h04   #10
Invité de passage
 
Inscription : septembre 2008
Messages : 11
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 11
Points : 0
Points : 0
J'ai pris une BDD toute propre sans aucun GRANT, j'ai tout refait comme il faut avec le 'VIEW' que j'avais oublié mais ça ne va pas mieux. C'est désespérant...
Yusuke26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2011, 17h06   #11
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
Vous vous connectez bien avec USER1 en utilisant le ROLE ROLE1 ?

Lors de la connexion il ne faut pas oublier de préciser qu'on veut utiliser le role ROLE1 sinon on ne bénéficie pas des pouvoirs du role en question !
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2011, 17h11   #12
Invité de passage
 
Inscription : septembre 2008
Messages : 11
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 11
Points : 0
Points : 0
Je fais les grant et compagnie avec SYSDBA puis je me connecte avec
User : USER1
Mdp : xxxx
Role : ROLE1

Le message en question :
This user does not have privilege to perform this operation on this object.No permission for read/select access to TABLE TABLE1.
Yusuke26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2011, 17h25   #13
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
Je viens de faire le test, et je me suis trompé il n'y a même pas besoin de donner les droits à la vue.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
CREATE DATABASE 'LOCALHOST:d:\DataBases\Tests\MesTest.fdb'
USER 'SYSDBA' PASSWORD 'masterkey'
PAGE_SIZE 16384
DEFAULT CHARACTER SET ISO8859_1;
 
CREATE TABLE MA_TABLE (
    ID  INTEGER NOT NULL
);
 
CREATE VIEW VW_MA_TABLE(
    ID)
AS
SELECT
    id
FROM ma_table;
 
ALTER TABLE MA_TABLE ADD CONSTRAINT PK_MA_TABLE PRIMARY KEY (ID);
 
CREATE ROLE ROLE1;
 
GRANT ROLE1 TO USER1;
 
GRANT SELECT ON VW_MA_TABLE TO ROLE1;
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2011, 17h42   #14
Invité de passage
 
Inscription : septembre 2008
Messages : 11
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 11
Points : 0
Points : 0
J'ai copié ton code et NADA !

Je sais pas si ça peut venir de là mais je suis en Firebird 2.5, Dialect 3, ODS 11.2
Yusuke26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2011, 17h44   #15
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
Il manquait

Code :
GRANT SELECT ON VW_MA_TABLE TO ROLE1;
a la fin de mon code, je l'ai modifié mais peut être après que vous ayez copié le code.
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2011, 17h55   #16
Invité de passage
 
Inscription : septembre 2008
Messages : 11
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 11
Points : 0
Points : 0
Je l'ai rajouté, j'ai essayé aussi en Dialect 1 mais ça change rien.

J'abandonne, je vais mettre un grant sur la table et basta.

Merci quand même !
Yusuke26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2011, 17h58   #17
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
Essayer sans passer par le ROLE.

Code :
GRANT SELECT ON VW_MA_TABLE TO USER1;
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2011, 18h07   #18
Invité de passage
 
Inscription : septembre 2008
Messages : 11
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 11
Points : 0
Points : 0
Déjà essayé.
Yusuke26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2011, 18h22   #19
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
Sous FB2.5 ca fonctionne également
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2011, 21h57   #20
Membre éclairé
 
Avatar de TryExceptEnd
 
Homme
Développeur informatique
Inscription : octobre 2006
Messages : 435
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2006
Messages : 435
Points : 347
Points : 347
Citation:
Envoyé par Barbibulle Voir le message
Je viens de faire le test, et je me suis trompé il n'y a même pas besoin de donner les droits à la vue.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
CREATE DATABASE 'LOCALHOST:d:\DataBases\Tests\MesTest.fdb'
USER 'SYSDBA' PASSWORD 'masterkey'
PAGE_SIZE 16384
DEFAULT CHARACTER SET ISO8859_1;
 
CREATE TABLE MA_TABLE (
    ID  INTEGER NOT NULL
);
 
CREATE VIEW VW_MA_TABLE(
    ID)
AS
SELECT
    id
FROM ma_table;
 
ALTER TABLE MA_TABLE ADD CONSTRAINT PK_MA_TABLE PRIMARY KEY (ID);
 
CREATE ROLE ROLE1;
 
GRANT ROLE1 TO USER1;
 
GRANT SELECT ON VW_MA_TABLE TO ROLE1;
Vous avez fait sauter la ligne suivante :

Code :
GRANT ALL ON MA_TABLE TO VIEW VW_MA_TABLE;
__________________
Si vous êtes libre, choisissez le Logiciel Libre.
TryExceptEnd est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h11.


 
 
 
 
Partenaires

Hébergement Web