Crear un rol de base de datos para permitir el acceso de lectura a todas las tablas; acceso de escritura a algunos


9

Tenemos una base de datos con más de 1000 tablas. Necesito crear un rol que permita la lectura solo en todas las tablas, así como el acceso de escritura a dos tablas específicas.

Estaba jugando con los roles de la base de datos, pero cada vez que iba a agregar las tablas, tenía que seleccionar a mano los 1000 ... ¿hay una mejor manera de hacer esto?


En realidad, esa podría ser la forma más simple ... ¿Hay alguna manera de escribir eso? Necesito mantener un conjunto de scripts para cada vez que refresquemos una de estas bases de datos, puedo recuperar toda la configuración al instante.
Wes

Respuestas:


9

La concesión de permisos en el esquema (p dbo. Ej. ) Se aplicará en cascada a todos los objetos en ese esquema. Para excepciones individuales, puede enumerarlas explícitamente:

GRANT SELECT ON SCHEMA::dbo TO [role];
GO

GRANT INSERT, UPDATE --, DELETE
  ON dbo.table_they_can_write_to TO [role];

DENY SELECT ON dbo.table_they_cannot_read TO [role];

3
Suficientemente fácil. Me alegra que tengamos una comunidad como esta.
Wes

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.