2010-05-17 10 views
1

J'ai créé une base de données et quelques fichiers dbo.tables. Maintenant, je veux créer un utilisateur qui peut lire et écrire dans ces tables, mais pas modifier ou supprimer. Cependant, je veux que cet utilisateur puisse créer ses propres tables et le laisser faire ce qu'il veut avec celles-ci.Autorisations utilisateur SQL Server 2005

Est-ce possible? Quelqu'un pourrait-il expliquer comment cela peut être fait?

Répondre

3

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:

  1. Créer une nouvelle base de données Rôle et ajoutez db_ReportingRole par exemple l'utilisateur concerné à ce rôle.
  2. Créez un nouveau schéma, par exemple Reporting et faites db_ReportingRole le propriétaire de ce schéma.
  3. Assigner la CREATE pertinente, DROP, etc autorisations au db_ReportingRole
  4. 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.

+0

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

+0

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

+0

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