Hola, no esta nada mal el codigo pero te debo decir algunas cositas

1) No uses tablas del sistema, Ms no te asegura que no hara cambios
entre versiones ni entre hot fix, con lo cual podes reemplazar el uso
de mas.sysdatabase por las vistas INFORMATION_SCHEMA.

2) Si vas a usar SQL dinamico usa sp_executesql y no EXEC, este ultimo
carece de muchas caracteristicas importantes.

De todas maneras lo mas recomendable en estos casos es armar grupos y
a los usuarios ponerlos dentro de esos grupos, luego en las bases de
datos se les da persimos a los grupos y no usuario por usuario!


-----------------------------------------------------------
Microsoft MVP en SQL Server
Mentor asociado en SQLTotalConsulting
Excelencia en servicios y consultoria  SQLServer
www.sqltotalconsulting.com
-----------------------------------------------------------

2008/3/17, Daniel W Trück <[EMAIL PROTECTED]>:
>
> Juanca
>
> Fijate si algo asi te sirve
>
> DECLARE cBases scroll cursor
> FOR
>     SELECT [name]
>     FROM master..sysdatabases
> OPEN cBases
>
> FETCH NEXT FROM cBases into @base
> WHILE @@FETCH_STATUS = 0
>
> BEGIN
>             EXEC  ( 'use '[EMAIL PROTECTED]' EXEC sp_addrole...')
>             EXEC (@exec)
>             FETCH NEXT FROM cBases into @base
> END
>
> Mas o menos es lo que uso para backup y funciona.
>
> Saludos
>
>
>
> On Mon, Mar 17, 2008 at 4:24 PM, Juan Carlos Barrios
> <[EMAIL PROTECTED]> wrote:
> > hola a todos!
> > estoy usando sql 2000 y vb6.
> >
> > quiero crear un usuario y darle permiso de uso en
> > distintas base de datos.
> > creo el usuario y le doy permiso a la primera db pero
> > dentro de un sp no se puede hacer un USE para cambiar
> > de base y correr sp_addrole en la otra db, que puedo
> > hacer
> >
> >
> > create proc proc_nuevo_usuario
> >        @usuario as varchar(12),
> >        @pws as varchar(12)
> >
> > as
> >
> > EXEC sp_addlogin @usuario, @pws
> > exec sp_defaultdb @usuario, @usuario
> >
> > exec sp_addrole 'usuarios'
> >
> > EXEC sp_grantdbaccess @usuario, @usuario
> >
> > exec sp_addrolemember 'usuarios', @usuario
> >
> >
> > EXEC sp_addrolemember 'db_datareader', 'usuarios'
> > EXEC sp_addrolemember 'db_datawriter', 'usuarios'
> >
> > --*************************************************
> >
> > use pagos
> >
> > exec sp_addrole 'usuarios'
> >
> > EXEC sp_grantdbaccess @usuario, @usuario
> >
> >
> >
> > <P>Juan Carlos Barrios</P>
> > Lider de Proyectos
> > Axyonar
> > www.axyonar.com.ar
> > [EMAIL PROTECTED]
> > cel. 15 6181-1094
> > <P> te (011) 6091-3030</P>
> >
> >
> >      Yahoo! Encuentros.
> >
> > Ahora encontrar pareja es mucho más fácil, probá el nuevo Yahoo!
> Encuentros
> http://yahoo.cupidovirtual.com/servlet/NewRegistration
> >
> >
>
>


--

Responder a