none
Asignarle permisos a un usuario de la la base de datos

    Question

  • Buen día.

    1.- Estoy aprendiendo a crear usuarios en SQLSERVER 2008 con codigo SQL y me he topado con lo siguiente.

    Para crear un usuario se debe dar de alta al usuario:

    sp_addlogin ' Nombre_de_usuario ' , 'Contraseña_de_usuario', ' Base_de_Datos_alaque podra_accesar_el_usuario ' 

    Resumen de sintaxis: sp_addlogin 'Rogelio Valenzuela','Pass123','MiBasededatos1'

    Con esto creamos el usuario ahora para poder conectarse a SQLSERVER debemos darlo de alta asi:

    sp_adduser ' nombre_con_el_que_se_conectara_el_usuario ' , ' contraseña_con_la_que_se_conectara_el_usuario '

    Resumen de sintaxis: sp_adduser 'RoyerX','MiContraseña'

    Y listo se supone que ya tengo un usuario para conectarme a la base de datos, mi duda es la siguiente.

    No he tenido tiempo de experiementar y me da miedo hacerlo la verdad, ademas no le creo mucho al maestro en esta sintaxis ya que no indago mucho en esto.

    El sp_login es para crear un usuario con el que conectarme a la base de datos SQLServer???

    El sp_adduser para que es exactamente???

    Tengo entendido que son lo mismo o estan relacionados la verdad no le entiendo me podría alguien explicar.

    2.- Una vez creado el usuario para asignarle permisos se hace así:

    GRANT clausula ON table TO usuario

    Ejemplo GRANT INSERT ON tbltabla TO miusuario

    Le dimos permiso al usuario "miusuario" de ejecutar sentencias INSERT.

    Aqui no tengo duda solo me gustaría saber como darle perimisos al usuario miusuario para accesar a otra base de datos.

    3.- Como puedo saber que permisos tiene el usuario miusuario, ¿Cual sería la sintxis SQL?

    Muchas gracias por la ayuda.

     

    Thursday, March 10, 2011 7:35 AM

Answers

  • Hola.

    Para estas cosas están los Books Online. Te dejo un par de links:

    sp_addlogin: http://technet.microsoft.com/es-es/library/ms173768.aspx

    sp_adduser: http://technet.microsoft.com/es-es/library/ms181422.aspx

    Como ves, es sintaxis a dejar de utilizar (hay que pasarse a "create login" y "create user".

    Luego, dar acceso a un usuario en una o varias bases de datos es igual, hay que crear el usuario en cada base de datos con "create user".

    Por último, para saber los permisos que tiene un usuario en una base de datos, usa sp_helprotect:

    http://msdn.microsoft.com/es-es/library/ms190310.aspx


    Alberto López Grande
    SQL Server MVP
    Visita mi blog en http://qwalgrande.blogspot.es/

    Thursday, March 10, 2011 7:56 AM
  • Una observación previa: Estás usando sp_addlogin y sp_adduser, que se consideran obsoletos. En SQL Server 2008 deberías usar CREATE LOGIN y CREATE USER.

    1. En el primer caso se crea un inicio de sesión con el que conectarse a SQL Server (al servidor en general). En el segundo, se "mapea" el inicio de sesión a un usuario de una base de datos concreta, para poder concederle permisos sobre el contenido de la misma.

    2. Para darle permisos al usuario sobre otra base de datos, haces un "USE" de la base de datos en cuestión, y vuelves a hacer un CREATE USER para crear en esta nueva base de datos un nuevo usuario mapeado al mismo login. A continuación, le das permisos a este usuario (que se puede llamar igual en todas las bases de datos si asi lo quieres).

    3. No sé ahora mismo cuál es la sentencia que te lista los permisos del usuario, pero hay una forma de averiguarla: Pon en marcha el Profiler para que capture las sentencias recibidas por el servidor, y a continuación vete al SQL Server Management Studio y examina desde ahí los permisos de un usuario. Después vete a la traza del Profiler y fíjate en cuáles fueron las sentencias que utilizó el SSMS para extraer esa información.

     

    • Marked as answer by RoyerX Thursday, March 10, 2011 8:08 AM
    Thursday, March 10, 2011 7:58 AM

All replies

  • Hola.

    Para estas cosas están los Books Online. Te dejo un par de links:

    sp_addlogin: http://technet.microsoft.com/es-es/library/ms173768.aspx

    sp_adduser: http://technet.microsoft.com/es-es/library/ms181422.aspx

    Como ves, es sintaxis a dejar de utilizar (hay que pasarse a "create login" y "create user".

    Luego, dar acceso a un usuario en una o varias bases de datos es igual, hay que crear el usuario en cada base de datos con "create user".

    Por último, para saber los permisos que tiene un usuario en una base de datos, usa sp_helprotect:

    http://msdn.microsoft.com/es-es/library/ms190310.aspx


    Alberto López Grande
    SQL Server MVP
    Visita mi blog en http://qwalgrande.blogspot.es/

    Thursday, March 10, 2011 7:56 AM
  • Una observación previa: Estás usando sp_addlogin y sp_adduser, que se consideran obsoletos. En SQL Server 2008 deberías usar CREATE LOGIN y CREATE USER.

    1. En el primer caso se crea un inicio de sesión con el que conectarse a SQL Server (al servidor en general). En el segundo, se "mapea" el inicio de sesión a un usuario de una base de datos concreta, para poder concederle permisos sobre el contenido de la misma.

    2. Para darle permisos al usuario sobre otra base de datos, haces un "USE" de la base de datos en cuestión, y vuelves a hacer un CREATE USER para crear en esta nueva base de datos un nuevo usuario mapeado al mismo login. A continuación, le das permisos a este usuario (que se puede llamar igual en todas las bases de datos si asi lo quieres).

    3. No sé ahora mismo cuál es la sentencia que te lista los permisos del usuario, pero hay una forma de averiguarla: Pon en marcha el Profiler para que capture las sentencias recibidas por el servidor, y a continuación vete al SQL Server Management Studio y examina desde ahí los permisos de un usuario. Después vete a la traza del Profiler y fíjate en cuáles fueron las sentencias que utilizó el SSMS para extraer esa información.

     

    • Marked as answer by RoyerX Thursday, March 10, 2011 8:08 AM
    Thursday, March 10, 2011 7:58 AM
  • Gracias enseguida checo los links.
    Thursday, March 10, 2011 8:09 AM
  • Muchisimas gracias me han aclarado lo de sp_addlogin y sp_adduser y hasta me entere que ya no se usa XD jeje. Gracias.
    Thursday, March 10, 2011 8:09 AM