Comprender los permisos de SQL Server

8

Estoy rooteando en SQL Server Management Studio contra mi instancia de SQL Server 2008 R2 Express Edition. Estoy tratando de entender cómo funcionan los permisos.

Lo que puedo ver es (a través de las propiedades de muchas de estas entidades)

  1. El inicio de sesión de mi servidor se puede vincular a un usuario de la base de datos
  2. Mi usuario de base de datos puede tener uno o más roles de base de datos
  3. Uno de los roles de la base de datos es db_datawriter, que posee el esquema db_datawriter

Sin embargo, en ese punto el camino se enfría. El esquema db_datawriter tiene una página de permisos debajo de sus propiedades que está en blanco.

¿Qué define con precisión qué son los permisos del esquema db_datawriter?

akc42
fuente

Respuestas:

7

db_datawriter no tiene elementos en la página de permisos porque no tiene permisos de objetos explícitos como tales. Los derechos están implícitos en el rol.

MSDN para db_datawriter dice

Los miembros de la función fija de base de datos db_datawriter pueden agregar, eliminar o cambiar datos en todas las tablas de usuarios.

Tiene INSERTAR, ACTUALIZAR, ELIMINAR en tablas según otra página de MSDB Permisos de roles de base de datos fijos

Concedido: BORRAR, INSERTAR, ACTUALIZAR

Finalmente, ¿qué dice el motor de base de datos (SQL Server 2008 R2)?

EXEC sp_dbfixedrolepermission 'db_datawriter'

db_datawriter   DELETE permission on any object
db_datawriter   INSERT permission on any object
db_datawriter   UPDATE permission on any object

Las páginas de MSDN para SQL Server 2008 están aquí (jerarquía de página diferente)

gbn
fuente
Creo que lo que pregunta el OP es sobre los permisos en el esquema, no sobre el rol fijo de db. ¿A menos que haya leído mal eso?
Thomas Stringer
@ Surfer513: el esquema es un marcador de posición para el rol, no tiene permisos
gbn
Ah, está bien, ya veo. ¡Gracias por aclarar el error!
Thomas Stringer
Realmente estaba tratando de averiguar si db_datawriter te dio el derecho de escribir a través de una vista. Creo que la respuesta es que puede hacerlo si tiene permisos en la tabla subyacente (y cumple con las otras condiciones de solo insertar en una tabla). Mi falta de escritura resultó ser un problema de reinicio con la columna de identidad y también falló en la tabla subyacente
Akc42