Comprendre les autorisations SQL Server

8

Je suis enraciné dans SQL Server Management Studio par rapport à mon instance de SQL Server 2008 R2 Express Edition. J'essaie de comprendre comment fonctionnent les autorisations.

Ce que je peux voir, c'est (via les propriétés de plusieurs de ces entités)

  1. La connexion à mon serveur peut être liée à un utilisateur de base de données
  2. Mon utilisateur de base de données peut avoir un ou plusieurs rôles de base de données
  3. L'un des rôles de base de données est db_datawriter qui possède le schéma db_datawriter

Cependant, à ce stade, la piste devient froide. Le schéma db_datawriter a une page d'autorisations sous ses propriétés qui est vide.

Qu'est-ce qui définit précisément les autorisations du schéma db_datawriter?

akc42
la source

Réponses:

7

db_datawriter n'a aucun élément dans la page des autorisations car il n'a pas d'autorisations d'objet explicites en tant que telles. Les droits sont impliqués par le rôle.

MSDN pour db_datawriter dit

Les membres du rôle de base de données fixe db_datawriter peuvent ajouter, supprimer ou modifier des données dans toutes les tables utilisateur.

Il a INSERT, UPDATE, DELETE sur les tables selon une autre page MSDB Autorisations des rôles de base de données fixes

Accordé: SUPPRIMER, INSÉRER, METTRE À JOUR

Enfin, que dit le moteur de base de données (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

Les pages MSDN pour SQL Server 2008 sont ici (hiérarchie de pages différente)

gbn
la source
Je pense que ce que l'OP demande concerne les autorisations sur le schéma, pas le rôle de base de données fixe. A moins que j'aie mal lu ça?
Thomas Stringer
@ Surfer513: le schéma est un espace réservé pour le rôle, il n'a aucune autorisation
gbn
Ah, d'accord je vois. Merci d'avoir éclairci cette idée fausse!
Thomas Stringer
J'essayais en fait de savoir si db_datawriter vous avait donné le droit d'écrire à travers une vue. Je pense que la réponse est que vous pouvez si vous avez des autorisations sur la table sous-jacente (et que vous remplissez les autres conditions d'insertion dans une seule table). Mon échec d'écriture s'est avéré être un problème de réamorçage avec la colonne d'identité et a également échoué sur la table sous-jacente
akc42