ver usuarios usuario una tipos tabla sobre rol permisos listar datos dar crear con codigo asignar c#-4.0 sql-server-2008-r2 user-roles

c# 4.0 - usuarios - ¿Cómo permitir que un usuario de SQL Server inserte/actualice/elimine datos, pero no altere el esquema?



tipos de usuarios en sql server (1)

Si realmente quieres controlar esto a nivel de objeto, puedes hacer:

GRANT SELECT,UPDATE,INSERT,DELETE ON dbo.table TO user;

En el nivel de esquema:

GRANT SELECT,UPDATE,INSERT,DELETE ON SCHEMA::dbo TO user;

Sin embargo, lo ideal sería que no permitiera el uso de DML ad hoc en sus tablas y controle todos los DML mediante procedimientos almacenados. En ese caso, solo debe otorgar a exec el procedimiento en sí, y no a los objetos que toca:

GRANT EXEC ON dbo.procedure TO user;

De manera similar, si desea permitir la ejecución de todos los procedimientos en un esquema específico, puede decir:

GRANT EXEC ON SCHEMA::dbo TO user;

La única excepción es cuando su procedimiento almacenado compone SQL dinámico. En esos casos, es posible que aún necesite aplicar permisos a las tablas subyacentes en el contexto de la ejecución de SQL dinámico, o puede usar EXECUTE AS OWNER .

Mi aplicación (C #, ASP.Net) necesita insertar, actualizar y eliminar datos en la base de datos, y ejecutar procedimientos almacenados. Necesito evitar que modifique el esquema de base de datos, sin alterar las tablas, crear o eliminar, sin cambios en los procedimientos almacenados.

¿Qué combinación de permisos debo otorgar al usuario de la aplicación? Simplemente ''seleccionar'' no va a funcionar, porque necesita insertar / actualizar / eliminar datos en tablas.

¿Cómo reviso los permisos y acceso para un inicio de sesión en particular? ¿Cómo otorgo o denego permisos y acceso para un inicio de sesión? Necesito dar permisos a un nuevo usuario (inicio de sesión) para acceder a una sola base de datos.

Usando SQL Server 2008 R2, con SSMS.