Rechercher : dans
Par :

SQL grant ou connect

Dernière réponse le 3 jun 2009 à 14:00:12 Deeper, le 3 jun 2009 à 09:51:18 
 Signaler ce message aux modérateurs

Bonjour,

Sous Oracle, je souhaiterais donner des droits sur la totalité d'une base à un utilisateur.

J'ai une base toto et une base tutu.
Je souhaiterais que l'utilisateur de toto puisse utiliser n'importe quelle table de tutu (select * from tutu.table) sans avoir à granter chaque table de tutu.

Merci d'avance

Deep

Configuration: Windows XP Internet Explorer 6.0

Meilleures réponses pour « SQL grant ou connect » dans :
Connexion à la base de données avec JDBC VoirConnexion à la base de données L'API (Application Programming Interface) JDBC, c'est-à-dire la bibliothèque de classes JDBC, se charge de trois étapes indispensables à la connexion à une base de données : la création d'une connexion à la...
PHP - Bases de données VoirPhp permet un interfaçage très simple avec un grand nombre de bases de données. Lorsqu'une base de données n'est pas directement supportée par Php, il est possible d'utiliser un driver ODBC, pilote standard pour communiquer avec les bases de...
Oracle - Les requêtes hiérarchiques VoirCet article se base sur des tests et recherches réalisés dans la version 8.1.5 d'Oracle. Introduction Tout au long de cet article, nous allons nous intéresser à une structure de données permettant de créer un Forum de discussion, matérialisé par...

1

Jodu, le 3 jun 2009 à 10:01:15

Salut,

je n'utilise pas beaucoup le GRANT, mais avec :

GRANT select
ON tutu.*
TO maurice;


Maurice est ton utilisateur hein =D

Je ne garantis pas du tout que ça marche

Répondre à Jodu

2

HostOfSeraphim, le 3 jun 2009 à 10:02:37
  • +2

Visiblement il n'est pas possible d'utiliser un GRANT pour un schéma entier.

Par contre, regarde de ce côté :

DECLARE
  	CURSOR C_TABLE IS
    		SELECT TABLE_NAME
    		FROM ALL_TABLES
    		WHERE OWNER = 'USER1';
 	req STRING(200);
BEGIN
 
  	FOR CUR IN C_TABLE LOOP
		req := 'GRANT SELECT ON USER1.' || CUR.TABLE_NAME || ' TO USER2';
    		execute immediate (req);
  	END LOOP;
END;
/


Source : http://www.developpez.net/...

Configuration : Linux Debian Lenny / Noyau 2.6.26 / Gnome / ­Iceweasel 3
Connexion Internet : ADSL Orange 8M (Livebox)

Répondre à HostOfSeraphim

3

Jodu, le 3 jun 2009 à 10:12:59

Joli HostOfSepharin, j'y avais pas pensé...

Ya des fonctions énormes quand même, surtout sur Oracle... Tous des mathématiciens fous ceux qui bossent sur les BDD =D

Répondre à Jodu

4

HostOfSeraphim, le 3 jun 2009 à 10:27:12

J'aime pas trop les maths, moi... :-)

L'inconvénient de la méthode au-dessus, c'est que ça ne fait un GRANT pour les tables du schéma qu'à un instant T. Il faudrait voir à créer à la limite un trigger pour automatiser le GRANT pour les futures tables.

Configuration : Linux Debian Lenny / Noyau 2.6.26 / Gnome / ­Iceweasel 3
Connexion Internet : ADSL Orange 8M (Livebox)

Répondre à HostOfSeraphim

5

Jodu, le 3 jun 2009 à 10:29:59

C'est pas faux, mais bon, il a le code principal, c'est très facile maintenant, en une manip il revoque les droits et peut les remettre, ou les modifier...
Mais en effet un trigger automatiserait tout (quels fainéants ces informaticiens :p )

Répondre à Jodu

6

biboo, le 3 jun 2009 à 10:38:10

Les informaticiens et les mathématiciens sont fainéants par nature. :D

Répondre à biboo

7

 Deeper, le 3 jun 2009 à 14:00:12

Merci à tous...
La solution est là, encore faut il que j'aie les droits pour créer des triggers, ce qui n'est visiblement pas le cas....

Répondre à Deeper