SQL SERVER 2005 - CREER UN ROLE AUTOMATIQUEMENT (MODE LECTEUR OU UTILISATEUR)

cacalex Messages postés 69 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 3 avril 2008 - 25 oct. 2006 à 17:31
cs_fabrice69 Messages postés 1765 Date d'inscription jeudi 12 octobre 2000 Statut Membre Dernière intervention 11 décembre 2013 - 26 oct. 2006 à 17:03
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/40054-sql-server-2005-creer-un-role-automatiquement-mode-lecteur-ou-utilisateur

cs_fabrice69 Messages postés 1765 Date d'inscription jeudi 12 octobre 2000 Statut Membre Dernière intervention 11 décembre 2013 5
26 oct. 2006 à 17:03
Bonne nouvelle :P

Fabrice
cacalex Messages postés 69 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 3 avril 2008
26 oct. 2006 à 16:07
Bah, déjà, j'arrive à donner les permission SELECT, UPDATE ,DELETE et INSERT sur les tables et les vues... Il ne me resteras qu'à modifier manuellement EXECUTE pour les procédure stockés...

Ce code m'as évité beaucoup de travail !!!

Merci !
cs_fabrice69 Messages postés 1765 Date d'inscription jeudi 12 octobre 2000 Statut Membre Dernière intervention 11 décembre 2013 5
26 oct. 2006 à 10:55
Bonjour,

Comme je vous l'ai expliqué, de nombreux changement ont été effectués entre la version SQL Server 2000 et SQL Server 2005, notemment la mise en place des schémas (qui n'existe pas réellement sous 2000).
En effet, sous 2000, le schéma est le compte utilisateur ayant créé l'objet (donc très souvent on retrouve dbo.NomObjet).
Sous 2005, c'est différent et un peu plus proche des concepts d'ORACLE.

Cordialement
Romelard Fabrice
cacalex Messages postés 69 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 3 avril 2008
25 oct. 2006 à 18:23
En fait, quel est l'équivalent pour 2000 du sys.schemas de 2005 ?!?!?

Qu'est-ce que contient le sys.schemas de 2005 ?!?!?

Ça m'aiderais à m'orienter...

Merci !
cacalex Messages postés 69 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 3 avril 2008
25 oct. 2006 à 18:21
Remplacer
'sys.database_principals'
par
'sysusers',
et remplacer
"name @RoleName AND type 'R'"
par
"name @RoleName AND altuid '0'"

Et ça fonctionnes...

Impossible faire fonctionner "Grant Execute" des fonctions par contre...
---- BOUCLE SUR LES FONCTIONS
---- AJOUTE LES DROITS EXECUTE DES FONCTIONS
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯


Résultat :
-- MISE EN PLACE DU ROLE LECTEUR FUNCTION : DROIT SUR LE EXECUTE
Serveur : Msg 208, Niveau 16, État 1, Ligne 98
'sys.schemas' : nom d'objet incorrect.

Je vais fouiller un peu...

Merci !
cs_fabrice69 Messages postés 1765 Date d'inscription jeudi 12 octobre 2000 Statut Membre Dernière intervention 11 décembre 2013 5
25 oct. 2006 à 17:56
Bonjour,

Le soucis est que sous SQL Server 2000, les vues systèmes utilisées ici n'existent pas. Il faut donc taper dans les tables systèmes afin d'effectuer ces sélections.
N'ayant pas ce moteur sous la main actuellement, je ne peux pas la traduire, je regarderai à l'occasion.

Cordialement
Romelard Fabrice [MVP]
cacalex Messages postés 69 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 3 avril 2008
25 oct. 2006 à 17:31
J'adorerais pourvoir utiliser ce code...

Mais je suis sur SQL 2000... Une idée des changements à apporter pour le rendre fonctionnel ???

-'sys.database_principals': nom d'objet incorrect.

Merci !
Rejoignez-nous