Ah oui, la migration des droits, c'est toujours le bordel...
Bon, vu ce que tu racontes, ça tombe bien, y'avais un sacré boulot de mise en place d'une réelle politique de sécurité dans vos bases !
Dans un premier tems :
Code :
- Sinon, y a t il un réel risque de configurer ses sites avec le login sa ?
|
sa, comme son nom l'indique ("super administrateur" ), ben... c'est l'équivalent d'un point de vue logique du compte "administrateur" de NT.
En admin système avisé, vas-tu permettre à tes utilisateurs d'utiliser le compte admin du domaine pour lire leurs mails ? Voilà, t'as ta réponse
C'est d'autant plus vrai que le compte sa est un synonyme du compte Administrateur local de la machine. Ainsi, avec ce compte, on peut faire un sacré paquet de conneries, style éxécuter des instructions CMD depuis la base, ou autres joyeusetés qui peuvent rapidement guider à un point de non retour.
Ensuite, donner le même login/pass à toutes les bases, c'est archi-moyen... J'en déduis vu le nom, que vous faites de l'hébergement de site internet (ou intranet). Je ne sais pas si ce sont des clients interne ou non, mais même en interne, je doute que vos clients trouvent ça sympa qu'un concurrent (même entre services ça arrive, plus que sur le marché d'ailleurs) vienne trifouiller dans le base. Utiliser des comptes un peu plus sécurisés est donc un peu plus safe...
Ensuite, IIS permet d'authentification à SQL Server via le compte NT. SQL Server support les connections avec des login NT, donc autant en profiter.
Vous avez deux choix distincts :
- la non-restriction de lecture/écriture d'une base à l'autre ne vous dérange pas du tout (autres systèmes de sécurité, données absolument pas importantes, client unique, etc.)
=> Créez un groupe de droits dans SQL Server. Donnez des droits à ce groupe (ou rôle) dans les bases. Dans IIS, vérifiez que vous utilisez le compte "IUSR_nommachine" pour faire tourner chaque site. Si c'est sur la même machine que SQL Server, alors laisse comme ça. Sinon, mettez un nouveau compte :
login: tôt¤_l@~prà|iñ
passe : QbAâ-p2_}¨=Ât|5,0§äÛH$FE8Îd>¨RJ¡¨AdÛmoÛq3
=> c'est c'est du mdp ou je ne m'y connais pas (prendre un divx ou un mp3 dans notpad, copier une ligne, et virer tous les caractères pas faisables au clavier / le code barre du de la carte mère, c'est pas mal aussi, mais les suites numériques à 13 chiffres ça se carck en moins d'une heure sur un PC récent). Sur le serveur SQL Server, créer le même compte (sauf si c'est IUSR_xxx).
Dans SQL Server, attribuer à ce compte le rôle que vous avez créé juste avant.
- Vous ne voulez pas qu'un site puisse se connecter à une autre base que la sienne
=> Créez pour chaque site un compte NT et faite tourner chaque site avec son propre compte
Sur le serveur SQL, recréez ces mêmes comptes, et donnez leur l'accès à la base correspondante.
Avantage pour une migration : il suffit de répliquer les droits NT sur le nouveau serveur. Si vous bossez en domaine, c'est aisé, mais malheureusement non recommandé par Microsoft.
Ensuite, la chaîne de connection SQL Server depuis les sites :
"Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=NOM_DE_LA_BASE;Data Source=NOM_OU_IP_DE_SQL_SERVER (local si en local)"
Sinon, pour en revenir à la question de départ, malheureusement, je ne vois pas de solution miracle à moins d'écrire un script T-SQL qui fasse le boulot.
Message édité par Arjuna le 11-10-2005 à 12:48:32