2011-03-04 3 views
4

Je viens de créer une nouvelle application Web qui accepte une entrée basée sur un formulaire de l'utilisateur et l'insère dans la base de données. Pour aller de pair avec ce que j'ai créé un nouvel utilisateur dans la base de données et d'abord l'utilisateur affecté à deux rôles et schémas ...SQL Server 2008 - Suppression de la propriété du schéma

db_datareader 
db_datawriter 

Après avoir réfléchi sur les choses que je réalise que l'utilisateur n'a pas besoin d'être une partie de la db_datareader rôle parce que l'utilisateur a seulement inséré des données dans la base de données et n'en a jamais lu. Je suis donc retourné et retiré le rôle de db_datareader et remarqué que les options de schéma étaient grisées. Je ne pouvais pas supprimer l'utilisateur de la propriété du schéma de db_datareader.

Comment faire pour supprimer un utilisateur d'un schéma spécifique? Dois-je même assigné la propriété du schéma en premier lieu?

Je suis connecté en tant qu'administrateur de SQL Server et du système d'exploitation Windows 7.

Répondre

5

Non, vous ne devez pas attribuer la propriété du schéma à l'utilisateur. Vous devriez simplement faire de l'utilisateur un membre du schéma. Renvoyez la propriété à dbo et vérifiez que le compte d'utilisateur n'est pas encore membre du schéma.

+0

Merci. J'ai fait ce que vous avez suggéré et l'utilisateur n'est plus propriétaire du schéma. Je trouve confus le concept de la propriété du schéma. Des suggestions pour des ressources ou des tutoriels qui couvrent ce domaine? – webworm

+1

Eh bien, j'ai assisté à un cours de formation pour SQL Server 2008. Avant cela, j'étais confus au sujet de ce que sont les schémas. Ce que j'ai vraiment découvert est que si vous avez besoin d'autorisations granulaires sur les objets (plus d'un utilisateur peut accéder (ou pas) aux objets dans un schéma), alors les schémas ne deviennent rien de plus que des conteneurs logiques comme les espaces de noms. les développeurs. Sinon, si un compte peut accéder à tous les objets d'un schéma, l'ajout d'objets supplémentaires au schéma accorde implicitement au membre du schéma les droits d'accès configurés. – HardCode

+0

Personnellement, pour mes applications d'entreprise internes utilisant la sécurité Active Directory, je trouve que les schémas ne sont utiles que comme espaces de noms pour les développeurs. Je crée des rôles de base de données (ou d'application à partir de maintenant) et j'attribue les permissions de rôles aux objets. – HardCode

11

J'ai eu le même problème aujourd'hui et trouvé un moyen de supprimer l'utilisateur en tant que propriétaire du schéma. Ouvrez le noeud Schéma sous Sécurité dans la base de données et modifiez le propriétaire de l'utilisateur que vous avez utilisé par erreur avec le propriétaire par défaut. Par exemple, si un nom d'utilisateur impair est listé comme propriétaire du schéma pour db_datareader, changez-le en db_reader et ainsi de suite.

+1

La seule chose que j'ajouterais est d'actualiser le noeud de base de données dans Sql Mgmnt. Studio (clic droit | actualiser) après avoir effectué les modifications de Doreen ou l'utilisateur sql attribué par erreur au schéma affichera toujours l'appartenance aux schémas vérifiée pendant que sql mgmnt studio est toujours ouvert. Pas nécessaire mais peut éviter la perception incorrecte que le correctif n'a pas fonctionné. – JimSTAT