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

03/06/2010 - 17:42 por Maracayerocool | Informe spam
Buenas tengo el siguiente código que adjunto al final, donde creo un
usuario para una base de datos 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]
@NOMBRE varchar(20),
@CLAVE varchar(20),
@BASEDATOS varchar(20),
@EXPIRATION varchar(3),
@POLICY varchar(3)
AS
BEGIN
SET NOCOUNT ON;

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 + '''')
 

Leer las respuestas

#1 Carlos A.
08/06/2010 - 18:40 | Informe spam
Buen Dia:
Es fácil, adicione el usuario a los roles bd_datareader y db_datawriter y le
dara acceso a toda la bd. para lectura y escritura.
Y ejecute el comando GRANT EXECUTE ON.. para dar permisos de ejecucion sobre
los SP, que el usuario necesita únicamente.
Claro está que lo mejor es que solo asigen permisos de escritura y lectura
sobre las tablas que el usaurio necesita.

Un saludo,


"Maracayerocool" wrote:

Buenas tengo el siguiente código que adjunto al final, donde creo un
usuario para una base de datos 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]
@NOMBRE varchar(20),
@CLAVE varchar(20),
@BASEDATOS varchar(20),
@EXPIRATION varchar(3),
@POLICY varchar(3)
AS
BEGIN
SET NOCOUNT ON;

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 + '''')
.

Preguntas similares