2009-03-10 8 views
0

J'ai créé plusieurs nouvelles tables sur une nouvelle base de données (Microsoft SQL Server 2005). Ces tables sont maintenant prêtes pour les utilisateurs client à afficher via Access 2003 à l'aide de l'objet ODBC système DSN (avec l'authentification SQL). Ce que j'ai fait était de créer un rôle et un schéma dans la base de données, et un utilisateur de connexion pour mon serveur SQL par défaut avec ma base de données et le nom du schéma.TSQL pour afficher, ajouter et supprimer des autorisations

Le problème est que les clients peuvent non seulement voir les tableaux que j'ai créés mais aussi les objets de vue système dans la base de données. Je ne suis pas sûr que devrais-je faire pour installer un utilisateur de connexion SQL, un schéma et un rôle pour que seules mes tables soient visibles? Vous ne savez pas pourquoi les objets de vue système sont visibles par les utilisateurs qui se connectent par défaut.

Une autre façon de nettoyer les autorisations que j'ai maintenant. J'ai vérifié quelques objets de vue système (une très longue liste). Ils ont tous une permission avec le schéma que j'ai créé avec un schéma public. Est-il possible d'utiliser le script T-SQL pour afficher puis supprimer les autorisations associées à mon schéma pour ces objets de vue système? Après cela, j'ai besoin d'utiliser des scripts similaires pour ajouter une permission avec mon schéma aux tables que j'ai créées.

Répondre

1

Eh bien, par défaut, un nouvel utilisateur sera également membre du rôle de serveur et de base de données "public". Les objets dans le sys. et les schémas INFORMATION_SCHEMA sont visibles pour les membres du rôle public.

Vous pouvez soit refuser explicitement l'accès de votre propre rôle à ces schémas, soit supprimer le rôle public de votre utilisateur.

Marc

Questions connexes