Traspasar usuarios de SQL Server

19/03/2005 - 19:57 por Juan Pedro Gonzalez | Informe spam
Hola,

Tengo un problemilla entre manos y me gustaria saber vuestra opinion, ideas
o soluciones.

Basicamente tengo dos servidores SQL Server. Los servidores son
independientes; es decir, no estan 'enlazados' (Vamos que no son "linked
servers")... y no pueden serlo por motivos internos. Tengo una serie de
aplicaciones donde una aplicacion se conecta unicamente a un servidor, otra
se conecta a el otro servidor y el resto se conecta a ambos servidores.
Todos los logins son de SQL Server. Bien, en principio uno de estos
programas asigna los logins de los usuarios con sus respectivas
reestricciones. El caso es que algunos de estos logins deben residir
unicamente en un servidor, pero algunos logins deben residir en ambos
servidores.

Tengo una tabla adicional que extiende un poco los campos de sysusers dentro
de la tabla, y que se "relaciona" (Aunque no hay una relacion establecida)
son sysusers atraves del campo "uid". Se me habia ocurrido crear un paquete
DTS que pase la tabla sysusers de la base de datos al otro servidor, la pega
es que supongo que deberia hacer lo mismo con los usuarios de la base de
datos "master" con el fin de tener login en el sistema, y no estoy seguro de
que pasaria si el uid ya esta en uso. El hecho de tener un usuario que debe
accecder a las dos bases de datos y que solo puedea acceder a una me daría
problemas Por motivos de seguridad no podria traspasar todos los
usuarios de una base de datos a la otra (como ya he dicho, solo me interesa
que algunos usuarios esten en las dos bases de datos) Por lo que se
tampoco puedo emplear un procedimiento almacenado ya que no son servidores
ligados, y por lo tanto un servidor no "ve" al otro y viceversa... y me
pareceria interesante poder contar con una transaccion para evitar que un
servidor agregue un uduario en una base de datos y no en la otra cuando
fuese necesario.

Por otro lado, me gustaria saber en el caso de que decidiese permitir el
acceso de todos los usuarios a las dos bases de datos, ¿Me bastaria con un
DTS que pasase todos los datos de sysusers de la base de datos a la que
quiero darles acceso y de la base de datos "master"?

Un saludo y gracias de antemano.

Preguntas similare

Leer las respuestas

#1 Miguel Egea
19/03/2005 - 23:59 | Informe spam
Dale un vistazo a esto
http://www.configuracionesintegrale...p?articulo(9
Saludos
Miguel Egea
"Juan Pedro Gonzalez" escribió en el mensaje
news:
Hola,

Tengo un problemilla entre manos y me gustaria saber vuestra opinion,
ideas
o soluciones.

Basicamente tengo dos servidores SQL Server. Los servidores son
independientes; es decir, no estan 'enlazados' (Vamos que no son "linked
servers")... y no pueden serlo por motivos internos. Tengo una serie de
aplicaciones donde una aplicacion se conecta unicamente a un servidor,
otra
se conecta a el otro servidor y el resto se conecta a ambos servidores.
Todos los logins son de SQL Server. Bien, en principio uno de estos
programas asigna los logins de los usuarios con sus respectivas
reestricciones. El caso es que algunos de estos logins deben residir
unicamente en un servidor, pero algunos logins deben residir en ambos
servidores.

Tengo una tabla adicional que extiende un poco los campos de sysusers
dentro
de la tabla, y que se "relaciona" (Aunque no hay una relacion establecida)
son sysusers atraves del campo "uid". Se me habia ocurrido crear un
paquete
DTS que pase la tabla sysusers de la base de datos al otro servidor, la
pega
es que supongo que deberia hacer lo mismo con los usuarios de la base de
datos "master" con el fin de tener login en el sistema, y no estoy seguro
de
que pasaria si el uid ya esta en uso. El hecho de tener un usuario que
debe
accecder a las dos bases de datos y que solo puedea acceder a una me daría
problemas Por motivos de seguridad no podria traspasar todos los
usuarios de una base de datos a la otra (como ya he dicho, solo me
interesa
que algunos usuarios esten en las dos bases de datos) Por lo que se
tampoco puedo emplear un procedimiento almacenado ya que no son servidores
ligados, y por lo tanto un servidor no "ve" al otro y viceversa... y me
pareceria interesante poder contar con una transaccion para evitar que un
servidor agregue un uduario en una base de datos y no en la otra cuando
fuese necesario.

Por otro lado, me gustaria saber en el caso de que decidiese permitir el
acceso de todos los usuarios a las dos bases de datos, ¿Me bastaria con un
DTS que pasase todos los datos de sysusers de la base de datos a la que
quiero darles acceso y de la base de datos "master"?

Un saludo y gracias de antemano.



Respuesta Responder a este mensaje
#2 Juan Pedro Gonzalez
21/03/2005 - 02:09 | Informe spam
Hola Miguel,

He estado leyendo el articulo pero me quedan un par de dudas, a ver si me
puedes hechar un cable.

Segun estoy leyendo una opcion podría ser crear un paquete DTS y pasarle la
tabla sysxlogins al nuevo servidor. Supongo que asi me copiaria tambien el
password, ¿no? El "problema" es que no estoy seguro de que el dbid vaya a
ser igual en un servidor que en el otro, a priori supongo que no... De todas
formas supongo que podria metyer el dbid en el propio paquete DTS ya que no
variara una vez que establezca las tablas... Lo que si me preocupa un poco
es el "sid".

La idea realmente es que desde un programa hecho en VB .NET puedan asignar
usuarios a la base de datos, y en ciertos casos los usuarios deberían tener
acceso a las dos bases de datos. En estos casos debo tener algun sistema que
me asegure que el usuario va a estar disponible en ambas bases de datos. El
programa deberia estar en produccion en breve, y me da bastante miedo que el
DTS pueda ocasionar un error grave que me inutilice la base de datos, o que
corrompa los datos. Como ya he dico uno de mis principales temores es el
sid.

Saludos



"Miguel Egea" escribió en el mensaje
news:uuwx$
Dale un vistazo a esto



http://www.configuracionesintegrale...p?articulo(
9
Saludos
Miguel Egea
"Juan Pedro Gonzalez" escribió en el mensaje
news:
> Hola,
>
> Tengo un problemilla entre manos y me gustaria saber vuestra opinion,
> ideas
> o soluciones.
>
> Basicamente tengo dos servidores SQL Server. Los servidores son
> independientes; es decir, no estan 'enlazados' (Vamos que no son "linked
> servers")... y no pueden serlo por motivos internos. Tengo una serie de
> aplicaciones donde una aplicacion se conecta unicamente a un servidor,
> otra
> se conecta a el otro servidor y el resto se conecta a ambos servidores.
> Todos los logins son de SQL Server. Bien, en principio uno de estos
> programas asigna los logins de los usuarios con sus respectivas
> reestricciones. El caso es que algunos de estos logins deben residir
> unicamente en un servidor, pero algunos logins deben residir en ambos
> servidores.
>
> Tengo una tabla adicional que extiende un poco los campos de sysusers
> dentro
> de la tabla, y que se "relaciona" (Aunque no hay una relacion


establecida)
> son sysusers atraves del campo "uid". Se me habia ocurrido crear un
> paquete
> DTS que pase la tabla sysusers de la base de datos al otro servidor, la
> pega
> es que supongo que deberia hacer lo mismo con los usuarios de la base de
> datos "master" con el fin de tener login en el sistema, y no estoy


seguro
> de
> que pasaria si el uid ya esta en uso. El hecho de tener un usuario que
> debe
> accecder a las dos bases de datos y que solo puedea acceder a una me


daría
> problemas Por motivos de seguridad no podria traspasar todos los
> usuarios de una base de datos a la otra (como ya he dicho, solo me
> interesa
> que algunos usuarios esten en las dos bases de datos) Por lo que se
> tampoco puedo emplear un procedimiento almacenado ya que no son


servidores
> ligados, y por lo tanto un servidor no "ve" al otro y viceversa... y me
> pareceria interesante poder contar con una transaccion para evitar que


un
> servidor agregue un uduario en una base de datos y no en la otra cuando
> fuese necesario.
>
> Por otro lado, me gustaria saber en el caso de que decidiese permitir el
> acceso de todos los usuarios a las dos bases de datos, ¿Me bastaria con


un
> DTS que pasase todos los datos de sysusers de la base de datos a la que
> quiero darles acceso y de la base de datos "master"?
>
> Un saludo y gracias de antemano.
>
>
>



Respuesta Responder a este mensaje
#3 Juan Pedro Gonzalez
21/03/2005 - 02:14 | Informe spam
Por cierto, Cuando mencionas "servidores conectados" te refieres a los
"linked servers" o simplemente que exista una conexion entre ellos a pesar
de que no se vean fisicamente (Me refiero a cuando le das a agregar servidor
en el administrador corporativo)? Creo que hay un problema de WINS pero no
se puede hacer nada al respecto.


"Juan Pedro Gonzalez" escribió en el mensaje
news:
Hola,

Tengo un problemilla entre manos y me gustaria saber vuestra opinion,


ideas
o soluciones.

Basicamente tengo dos servidores SQL Server. Los servidores son
independientes; es decir, no estan 'enlazados' (Vamos que no son "linked
servers")... y no pueden serlo por motivos internos. Tengo una serie de
aplicaciones donde una aplicacion se conecta unicamente a un servidor,


otra
se conecta a el otro servidor y el resto se conecta a ambos servidores.
Todos los logins son de SQL Server. Bien, en principio uno de estos
programas asigna los logins de los usuarios con sus respectivas
reestricciones. El caso es que algunos de estos logins deben residir
unicamente en un servidor, pero algunos logins deben residir en ambos
servidores.

Tengo una tabla adicional que extiende un poco los campos de sysusers


dentro
de la tabla, y que se "relaciona" (Aunque no hay una relacion establecida)
son sysusers atraves del campo "uid". Se me habia ocurrido crear un


paquete
DTS que pase la tabla sysusers de la base de datos al otro servidor, la


pega
es que supongo que deberia hacer lo mismo con los usuarios de la base de
datos "master" con el fin de tener login en el sistema, y no estoy seguro


de
que pasaria si el uid ya esta en uso. El hecho de tener un usuario que


debe
accecder a las dos bases de datos y que solo puedea acceder a una me daría
problemas Por motivos de seguridad no podria traspasar todos los
usuarios de una base de datos a la otra (como ya he dicho, solo me


interesa
que algunos usuarios esten en las dos bases de datos) Por lo que se
tampoco puedo emplear un procedimiento almacenado ya que no son servidores
ligados, y por lo tanto un servidor no "ve" al otro y viceversa... y me
pareceria interesante poder contar con una transaccion para evitar que un
servidor agregue un uduario en una base de datos y no en la otra cuando
fuese necesario.

Por otro lado, me gustaria saber en el caso de que decidiese permitir el
acceso de todos los usuarios a las dos bases de datos, ¿Me bastaria con un
DTS que pasase todos los datos de sysusers de la base de datos a la que
quiero darles acceso y de la base de datos "master"?

Un saludo y gracias de antemano.


Respuesta Responder a este mensaje
#4 Miguel Egea
21/03/2005 - 17:09 | Informe spam
Como dice el artículo en los dts hay una tarea que es copiar logins.
Si te copias la BBDD sysxlogins, no hay problema pero no machaques logins
existentes.
Se puede actualizar el sid en la BBDD en concreto en la tabla sysusers y eso
soluciona el problema.

Sobre la bbdd por defecto hay un sp que hace la tarea que es sp_defaultdb,
revisalo y lo usas para los usuarios que necesites.

Saludos
Miguel Egea
"Juan Pedro Gonzalez" escribió en el mensaje
news:
Hola Miguel,

He estado leyendo el articulo pero me quedan un par de dudas, a ver si me
puedes hechar un cable.

Segun estoy leyendo una opcion podría ser crear un paquete DTS y pasarle
la
tabla sysxlogins al nuevo servidor. Supongo que asi me copiaria tambien el
password, ¿no? El "problema" es que no estoy seguro de que el dbid vaya a
ser igual en un servidor que en el otro, a priori supongo que no... De
todas
formas supongo que podria metyer el dbid en el propio paquete DTS ya que
no
variara una vez que establezca las tablas... Lo que si me preocupa un poco
es el "sid".

La idea realmente es que desde un programa hecho en VB .NET puedan asignar
usuarios a la base de datos, y en ciertos casos los usuarios deberían
tener
acceso a las dos bases de datos. En estos casos debo tener algun sistema
que
me asegure que el usuario va a estar disponible en ambas bases de datos.
El
programa deberia estar en produccion en breve, y me da bastante miedo que
el
DTS pueda ocasionar un error grave que me inutilice la base de datos, o
que
corrompa los datos. Como ya he dico uno de mis principales temores es el
sid.

Saludos



"Miguel Egea" escribió en el mensaje
news:uuwx$
Dale un vistazo a esto



http://www.configuracionesintegrale...p?articulo(
9
Saludos
Miguel Egea
"Juan Pedro Gonzalez" escribió en el mensaje
news:
> Hola,
>
> Tengo un problemilla entre manos y me gustaria saber vuestra opinion,
> ideas
> o soluciones.
>
> Basicamente tengo dos servidores SQL Server. Los servidores son
> independientes; es decir, no estan 'enlazados' (Vamos que no son
> "linked
> servers")... y no pueden serlo por motivos internos. Tengo una serie de
> aplicaciones donde una aplicacion se conecta unicamente a un servidor,
> otra
> se conecta a el otro servidor y el resto se conecta a ambos servidores.
> Todos los logins son de SQL Server. Bien, en principio uno de estos
> programas asigna los logins de los usuarios con sus respectivas
> reestricciones. El caso es que algunos de estos logins deben residir
> unicamente en un servidor, pero algunos logins deben residir en ambos
> servidores.
>
> Tengo una tabla adicional que extiende un poco los campos de sysusers
> dentro
> de la tabla, y que se "relaciona" (Aunque no hay una relacion


establecida)
> son sysusers atraves del campo "uid". Se me habia ocurrido crear un
> paquete
> DTS que pase la tabla sysusers de la base de datos al otro servidor, la
> pega
> es que supongo que deberia hacer lo mismo con los usuarios de la base
> de
> datos "master" con el fin de tener login en el sistema, y no estoy


seguro
> de
> que pasaria si el uid ya esta en uso. El hecho de tener un usuario que
> debe
> accecder a las dos bases de datos y que solo puedea acceder a una me


daría
> problemas Por motivos de seguridad no podria traspasar todos los
> usuarios de una base de datos a la otra (como ya he dicho, solo me
> interesa
> que algunos usuarios esten en las dos bases de datos) Por lo que se
> tampoco puedo emplear un procedimiento almacenado ya que no son


servidores
> ligados, y por lo tanto un servidor no "ve" al otro y viceversa... y me
> pareceria interesante poder contar con una transaccion para evitar que


un
> servidor agregue un uduario en una base de datos y no en la otra cuando
> fuese necesario.
>
> Por otro lado, me gustaria saber en el caso de que decidiese permitir
> el
> acceso de todos los usuarios a las dos bases de datos, ¿Me bastaria con


un
> DTS que pasase todos los datos de sysusers de la base de datos a la que
> quiero darles acceso y de la base de datos "master"?
>
> Un saludo y gracias de antemano.
>
>
>







Respuesta Responder a este mensaje
#5 Miguel Egea
22/03/2005 - 00:13 | Informe spam
solamente a que se vean y uno se pueda conectar al otro.

"Juan Pedro Gonzalez" escribió en el mensaje
news:
Por cierto, Cuando mencionas "servidores conectados" te refieres a los
"linked servers" o simplemente que exista una conexion entre ellos a pesar
de que no se vean fisicamente (Me refiero a cuando le das a agregar
servidor
en el administrador corporativo)? Creo que hay un problema de WINS pero no
se puede hacer nada al respecto.


"Juan Pedro Gonzalez" escribió en el mensaje
news:
Hola,

Tengo un problemilla entre manos y me gustaria saber vuestra opinion,


ideas
o soluciones.

Basicamente tengo dos servidores SQL Server. Los servidores son
independientes; es decir, no estan 'enlazados' (Vamos que no son "linked
servers")... y no pueden serlo por motivos internos. Tengo una serie de
aplicaciones donde una aplicacion se conecta unicamente a un servidor,


otra
se conecta a el otro servidor y el resto se conecta a ambos servidores.
Todos los logins son de SQL Server. Bien, en principio uno de estos
programas asigna los logins de los usuarios con sus respectivas
reestricciones. El caso es que algunos de estos logins deben residir
unicamente en un servidor, pero algunos logins deben residir en ambos
servidores.

Tengo una tabla adicional que extiende un poco los campos de sysusers


dentro
de la tabla, y que se "relaciona" (Aunque no hay una relacion
establecida)
son sysusers atraves del campo "uid". Se me habia ocurrido crear un


paquete
DTS que pase la tabla sysusers de la base de datos al otro servidor, la


pega
es que supongo que deberia hacer lo mismo con los usuarios de la base de
datos "master" con el fin de tener login en el sistema, y no estoy seguro


de
que pasaria si el uid ya esta en uso. El hecho de tener un usuario que


debe
accecder a las dos bases de datos y que solo puedea acceder a una me
daría
problemas Por motivos de seguridad no podria traspasar todos los
usuarios de una base de datos a la otra (como ya he dicho, solo me


interesa
que algunos usuarios esten en las dos bases de datos) Por lo que se
tampoco puedo emplear un procedimiento almacenado ya que no son
servidores
ligados, y por lo tanto un servidor no "ve" al otro y viceversa... y me
pareceria interesante poder contar con una transaccion para evitar que un
servidor agregue un uduario en una base de datos y no en la otra cuando
fuese necesario.

Por otro lado, me gustaria saber en el caso de que decidiese permitir el
acceso de todos los usuarios a las dos bases de datos, ¿Me bastaria con
un
DTS que pasase todos los datos de sysusers de la base de datos a la que
quiero darles acceso y de la base de datos "master"?

Un saludo y gracias de antemano.







Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida