SQL Server : pouvez-vous limiter l'accès à un seul tableau
Je pense que la réponse est non, mais je suis à la recherche de donner à quelqu'un l'accès à un SQL Server
base de données mais je n'en ai vraiment envie d'avoir accès à une table.
Il est assez facile de limiter quelqu'un pour seulement accès à une base de données, mais n'ont aucune idée de si je peux limiter à une seule table.
Mes pensées étaient pour créer une autre base de données avec un synonyme à l'autre table, puis d'en limiter l'accès à cette base de données, mais je me demandais si quelqu'un pourrait penser à une meilleure façon.
Je ne suis pas convaincu que cela fonctionne comme je le pense, il existe un conflit d'autorisations.
Vous pouvez donner aux gens l'accès à un seul colonne si vous le souhaitez, créer leur identifiant et de leur juste accorder l'autorisation select sur votre table
OriginalL'auteur Andrew Newland | 2012-03-20
Vous devez vous connecter pour publier un commentaire.
Oui.
Alors que cela fonctionne, vous feriez probablement mieux gérer les autorisations à l'aide de les rôles et groupes d'ANNONCES.
OriginalL'auteur Mitch Wheat
Le problème avec une boucle sur toutes les tables et en refusant l'accès serait si vous ajoutez une nouvelle table.
La chose importante est de ne pas donner à l'utilisateur "db_datareader' l'accès à toute la base de données. À l'aide de l'INTERFACE utilisateur, vous pouvez utiliser le Mappage de l'Utilisateur sous l'onglet connexion, vous pouvez créer l'utilisateur "public" accès uniquement. Ensuite, vous pouvez aller à la base de données et de donner à l'utilisateur de SÉLECTIONNER l'accès à la table en particulier (en cliquant sur le bizarrement nommé bouton "Rechercher" en vertu de l'onglet éléments Sécurisables).
Cette approche serait de travailler avec un script aussi, bien sûr.
OriginalL'auteur mike nelson
Il ne le fait pas, c'est pourquoi la réponse n'était pas marqué comme acceptée, alors que l'on a accepté l'on fait. Vous ne savez pas si vous me demandez ce point je me suis trompé pour une raison étrange, mois après cette réponse que j'avais oublié depuis longtemps, que ce soit les moyens, j'espère que mon commentaire aide.
Désolé, cette question a été portée à mon attention dans le chat. Quand j'ai commenté en fait je n'avais pas réalisé à quel âge était la question. Pourtant, je pense que c'est valable pour remettre en question certains aspects de réponses à l'égard de la question d'origine, quel que soit son accepter d'état ou décompte des voix. Beaucoup de questions n'ont pas accepté de répondre, et cette question est encore ici parce que les réponses sont destinées à aider les OP et les futurs lecteurs. Beaucoup d'entre eux ne peut supposer qu'une réponse sur la page est une réponse.
Cela ne peut pas faire exactement ce que le demandeur cherchait, mais c'est juste ce que je cherchais 🙂
OriginalL'auteur kd7
Certainement. SUBVENTION les autorisations que vous souhaitez.
Lorsque vous donner à un utilisateur l'accès à une base de données, regardez les rôles qui leur sont confiées et quels sont les droits de ces rôles.
Le problème est que les gens accordent généralement trop large autorisations au début.
OriginalL'auteur Cade Roux
Bien sûr vous pouvez. Après la création de l'utilisateur et de leur donner accès à la base de la subvention de sélectionner uniquement l'accès (ou quel que soit le niveau dont ils ont besoin) à la table.
OriginalL'auteur Brian
Une meilleure approche serait de créer un
schema
, créer unproc
dans ceschema
. Ensuite, permettre à l'utilisateur deEXEC
queproc
. C'est tout. Vous pouvez créer unview
dans ceschema
et c'est peut-être plus de ce que vous êtes après.OriginalL'auteur Serj Sagan
Est la meilleure façon de créer l'élément sécurisable pour cette table spécifique. IL va vous demander ce que vous allez sécurisé; table, une vue de la base de données. Ensuite, vous choisissez la table spécifique de sécuriser et d'exclure l'utilisateur à partir de cette table.
OriginalL'auteur yared