Vous attribuez à l'utilisateur des rôles db_datareader
& db_datawriter
pour le schéma dbo
.
Cependant, pour permettre à l'utilisateur de créer et de modifier uniquement les nouvelles tables; vous devrez créer un schéma différent et affecter, par exemple db_owner
des autorisations à ce schéma.
Vous devez savoir cependant que cela peut créer des problèmes car vous pouvez avoir deux tables portant le même nom sous des schémas différents. Vous devez donc vous assurer que vos requêtes indiquent toujours le propriétaire de l'objet.
par exemple.
dbo.MyTable
CustomSchema.MyTable
MISE À JOUR:
Ok, je pense que ce sont les étapes que vous devez prendre:
- Créer une nouvelle base de données Rôle et ajoutez
db_ReportingRole
par exemple l'utilisateur concerné à ce rôle.
- Créez un nouveau schéma, par exemple
Reporting
et faites db_ReportingRole
le propriétaire de ce schéma.
- Assigner la
CREATE
pertinente, DROP
, etc autorisations au db_ReportingRole
- Assurez-vous que le même utilisateur est ajouté précédemment dans les
db_datareader
et db_datawriter
rôles pour le schéma dbo
.
Cela devrait vous permettre d'avoir un utilisateur qui peut lire et écrire à dbo
schéma, mais devrait être en mesure de modifier des tables, etc. Cependant, parce qu'ils en db_ReportingRole
ils devraient avoir un accès complet à modifier, créer, supprimer table etc. dans le schéma Reporting
. (À condition que vous avez attribué les autorisations appropriées au db_ReportingRole
J'espère que cela fonctionne pour vous.
Merci pour votre réponse. Comment je ne laisse à l'utilisateur d'utiliser le nouveau schéma? Est-ce que je change juste le schéma par défaut – karl
Lorsque je crée le nouveau schéma et que j'essaie d'ajouter les autorisations, je ne trouve pas le rôle de la base de données db_owner – karl
Bonjour Karl, cela peut vous aider lorsque vous créez un nouveau schéma. essayer d'assigner des permissions http://msdn.microsoft.com/en-us/library/ms187940.aspx – codingbadger