Nantes Université

Skip to content
Extraits de code Groupes Projets
Valider f0dfb517 rédigé par E214194U's avatar E214194U
Parcourir les fichiers

fin

parent 6abb5e54
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
BD/4-1.png

76 ko

BD/4-2.png

7,38 ko

BD/4-3.png

4,54 ko

BD/4-4.png

4,94 ko

......@@ -51,6 +51,8 @@ Grant select on communeLA to i2b07b,i2b06b;
Grant select on operateurLA to i2b07b,i2b06b;
Grant select on distributionLA to i2b07b,i2b06b;
```
Résultat pour `Distribution` de la `Loire-Atlantique` :
![alt text](4-1.png)
### 2. Donnez le droit de faire un Update du champ Adresse de la table Distribution.Vérifiez bien si la modification est bien faite.
```sql
......@@ -61,17 +63,20 @@ update i2b07b.distributionve set adresse='jonnhy depp' where id=481650;
commit;
```
Résultat pour `Distribution` de la `Loire-Atlantique` :
![alt text](4-2.png)
### 3. Donnez le droit de faire appel insert à la table Distribution. Vérifiez bien si l’insertion est bien faite.
```sql
Grant insert on distributionLA to i2b07b;
Grant insert on distributionLA to i2b06b;
Grant insert on distributionLA to i2b07b,i2b06b;
insert into i2b06b.distributionsa values (0,0,0,'testo',0,0,0,0,0,0);
insert into i2b07b.distributionve values (0,0,0,'testo',0,0,0,0,0,0);
commit;
```
Résultat pour `Distribution` de la `Loire-Atlantique` :
![alt text](4-3.png)
### 4. Supprimez les différents droits que vous avez donné à la question 1,2 et 3. Votre binôme doit vérifier s’il a toujours accès à ces tables.
```sql
......@@ -82,14 +87,18 @@ revoke update on distributionLA from i2b07b,i2b06b;
revoke insert on distributionLA from i2b07b,i2b06b;
```
### 5. Votre table Distribution contient les attributs ADR_NM_CP, EMR_DT_SERVICE,COORDONNEESL, COORDONNEESLT, COORD. Donnez le droit à votre binôme de voir tous les attributs sauf ces attributs.
Résultat pour `Distribution` de la `Loire-Atlantique` :
![alt text](4-4.png)
### 5. Votre table Distribution contient les attributs ADR_NM_CP, EMR_DT_SERVICE,COORDONNEESL, COORDONNEESLT, COORD.
```sql
create or replace view distributionLAbis as
select id,numfo,code_insee,adresse,statut from distributionLa;
--Permission
Grant select on distributionLAbis to i2b07b,i2b06b;
--Test
select * from i2b07b.distributionVEbis;
select * from i2b06b.distributionSAbis;
```
......@@ -312,17 +321,100 @@ references operateurla ( numfo );
```
`Vendée :`
```sql
--Clé Primaires
alter table communeve add constraint pk_co primary key ( code_insee );
alter table distributionve add constraint pk_di primary key ( id );
--Clé étrangères
alter table distributionve
add constraint ce_distribution_commune foreign key ( code_insee )
references communeve ( code_insee );
```
### 4. Créez maintenant les contraintes qui sont distants. Quel droit l’utilisateur1 doit donner à l’utilisateur2 pour qu’il puisse créer la clé étrangère de la table DistributionVE vers la table OperateurLA.
La `permission` pour accéder à `OperateurLA` :
```sql
--Permission
grant references on operateurLA to i2b07b,i2b06b;
```
Commande pour la `Vendée` :
```sql
alter table distributionve
add constraint ce_distribution_operateur foreign key ( numfo )
references i2b07a.operateurla ( numfo );
```
### 5. Refaire les mêmes questions(6, 7 et 8 de l’exercice1) avec la gestion des droits. En plus des select sur les tables, vous lui donnez aussi le droit des voir les différentes vues créées sur votre compte.
Vu que pour la `Loire-Atlantique` les requêtes sont identiques, on regarde pour la `Vendée`.
```sql
grant select on operateurLA to i2b07b,i2b06b with grant option;
```
\ No newline at end of file
```
Vu que pour la `Loire-Atlantique` les requêtes sont identiques, on regarde pour la `Vendée`.
```sql
create or replace view VEville5g as
select distinct c.nom_commune ,
(select count(*) from distributionve d, i2b07a.operateurla o
where o.numfo=d.numfo and o.generation='5G' and c.code_insee=d.code_insee)count
from communeve c
order by 2 desc;
create or replace view VEville4g as
select distinct c.nom_commune ,
(select count(*) from distributionve d, i2b07a.operateurla o
where o.numfo=d.numfo and o.generation='4G' and c.code_insee=d.code_insee)count
from communeve c
order by 2 desc;
select * from veville4g;
grant select on veville5g to i2b07a,i2b06b;
grant select on veville4g to i2b07a,i2b06b;
create or replace view VEville5gOp as
select distinct co.nom_commune,op.nomfo,count(*)count5G
from communeve co,i2b07a.operateurla op,distributionve di
where op.numfo=di.numfo and di.code_insee = co.code_insee
and op.generation='5G'
group by co.nom_commune,op.nomfo
order by 3 desc;
create or replace view veville4gOp as
select distinct co.nom_commune,op.nomfo,count(*)count4G
from communeve co,i2b07a.operateurla op,distributionve di
where op.numfo=di.numfo and di.code_insee = co.code_insee
and op.generation='4G'
group by co.nom_commune,op.nomfo
order by 3 desc;
--Permission
Grant select on VEville5gOp to i2b07a,i2b06b;
Grant select on VEville4gOp to i2b07a,i2b06b;
create or replace view VEville5gOpTech as
select distinct co.nom_commune,op.nomfo,op.technologie,count(*)count5G
from communeve co,i2b07a.operateurla op,distributionve di
where op.numfo=di.numfo and di.code_insee = co.code_insee
and op.generation='5G'
group by co.nom_commune,op.nomfo,op.technologie
order by 4 desc;
create or replace view veville4gOpTech as
select distinct co.nom_commune,op.nomfo,op.technologie,count(*)count4G
from communeve co,i2b07a.operateurla op,distributionve di
where op.numfo=di.numfo and di.code_insee = co.code_insee
and op.generation='4G'
group by co.nom_commune,op.nomfo,op.technologie
order by 4 desc;
--Permission
Grant select on veville5gOpTech to i2b07a,i2b06b;
Grant select on veville4gOpTech to i2b07a,i2b06b;
```
......@@ -46,11 +46,12 @@ commit;
--1.3
Grant insert on distributionLA to i2b07b,i2b06b;
insert into i2b06b.distributionsa values (0,0,0,'testo',0,0,0,0,0,0);
insert into i2b07b.distributionve values (0,0,0,'testo',0,0,0,0,0,0);
insert into i2b06b.distributionsa values (0,null,null,null,null,null,null,null,null,null);
insert into i2b07b.distributionve values (0,null,null,null,null,null,null,null,null,null);
commit;
select * from i2b07b.distributionve where id=0;
select * from i2b06b.distributionsa where id=0;
select * from distributionla where id=0;
--1.4
revoke select on communeLA from i2b07b,i2b06b;
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter