none
Crear usuario con permisos de lectura y escritura en tablas y ejecución de ( Vistas y StoreProcedures )

    Question

  • Buenas tengo el siguiente código que adjunto al final, donde  creo un
    usuario para una base de datos (SQL2005) especifica , el problema es que este
    usuario  al tratar de ejecutar  un StoreProcedure o una vista lanza el
    siguiente error

    The SELECT permission was denied on the object 'Vista_Permisos_Roles',
    database 'CRMCOMPANIAVENSHARP', schema 'dbo'.

    The SELECT permission was denied on the object 'SP_Menu', database
    'CRMCOMPANIAVENSHARP', schema 'dbo'.

    Yo solo necesito que ese usuario en particular que estoy creando pueda
    ejecutar , leer y escribir información y no editar la BD alguien
    podría guiarme y decirme mas o menos que se necesita para hacer lo que
    requiero.

    ALTER PROCEDURE [dbo].[Sp_CrearUsuario]
    -- Add the parameters for the stored procedure here
    @NOMBRE varchar(20),
    @CLAVE varchar(20),
    @BASEDATOS varchar(20),
    @EXPIRATION varchar(3),
    @POLICY varchar(3)
    AS
    BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

        -- Insert statements for procedure here
    EXEC ('CREATE LOGIN
    [' + @NOMBRE + ']
    WITH
    PASSWORD=N''' + @CLAVE + ''',
    DEFAULT_DATABASE=[' + @BASEDATOS + '],
    CHECK_EXPIRATION=' + @EXPIRATION + ',
    CHECK_POLICY=' + @POLICY + '')

    EXEC ('CREATE USER ' + @NOMBRE + ' FOR LOGIN ' + @NOMBRE + '')
    EXEC ('EXEC sp_addrolemember N''db_datawriter'',N''' + @NOMBRE + '''')
    EXEC ('EXEC sp_addrolemember N''db_ddladmin'',N''' + @NOMBRE + '''')
    Nada es imposible
    Thursday, June 03, 2010 4:06 PM

Answers

  • SI bueno Ejecutar- consultar realmente no importa com lo diga lo importante es que entendieron lo que queria decir.

    Pero ya lo hice , me respondieron de manera muy efectiva en otro foro y acá les doy la solucion.

    http://support.microsoft.com/kb/275312

     

     


    Nada es imposible
    • Marked as answer by Dudiver Friday, June 04, 2010 3:56 PM
    Friday, June 04, 2010 3:55 PM

All replies

  • Para que el usuario pueda leer y grabar información, los roles que necesita son db_datareader y db_datawriter. En el procedimiento que se cita, se le asignan los roles de db_datawriter y db_ddladmin. Por lo tanto, le falta el db_datareader (que es el que le permite leer en las tablas), y en cambio le sobra el db_ddladmin, que le permitiría modificar el esquema de la base de datos.

    Thursday, June 03, 2010 6:45 PM
  • Gracias estaba era probando y no me di cuanta que le deje el admin, pero igual forma no me permite ejecutar ni vistas ni Stores , y es alli cuando se me presenta el problema .
    Nada es imposible
    Thursday, June 03, 2010 8:23 PM
  • Hola.

    Las vistas no se ejecutan, se consultan. Con el rol db_datareader podrás leer de cualquier vista a la que no se le hayan denegado expresamente los permisos. En cuanto a los procedimientos almacenados, deberás otorgar permisos de procedimiento en procedimiento.

     


    Alberto López Grande (Visita mi blog en http://qwalgrande.blogspot.es/)
    Friday, June 04, 2010 2:29 AM
  • SI bueno Ejecutar- consultar realmente no importa com lo diga lo importante es que entendieron lo que queria decir.

    Pero ya lo hice , me respondieron de manera muy efectiva en otro foro y acá les doy la solucion.

    http://support.microsoft.com/kb/275312

     

     


    Nada es imposible
    • Marked as answer by Dudiver Friday, June 04, 2010 3:56 PM
    Friday, June 04, 2010 3:55 PM