web-dev-qa-db-fra.com

Comment puis-je accorder uniquement l'accès en lecture à une table unique dans la base de données SQL Server

Je souhaite fournir uniquement un accès en lecture à une seule table de la base de données SQL Server pour un utilisateur donné - xyz

Ont traversé ces questions:

Comment puis-je octroyer à un utilisateur un accès en lecture à une base de données dans SQL Server?

Octroi à une connexion SQL Server d'un accès à une base de données - SQL Server

Le meilleur moyen d’accorder un accès en lecture seule à 2 tables dans SQL Server 2005?

Mais cela me pose certaines questions fondamentales: quelle est la différence en ce qui concerne l'accès par le rôle et le nom d'utilisateur?

Veuillez fournir un moyen efficace de le faire

16
Sree

J'ai résolu ce problème de cette manière:

CREATE LOGIN XYZ
WITH PASSWORD = 'PASSWORD'

Une fois la connexion pour XYZ créée, créez un utilisateur pour la connexion ci-dessus créée.

CREATE USER xyz FOR LOGIN xyz

Puis accordez le droit de sélection, autorisation de mise à jour, dans mon cas, il suffit de sélectionner sur une table particulière

GRANT SELECT ON DBNAME.TABLE_NAME TO USERNAME

Les sources que j'ai mentionnées pour cela sont

  1. _ { http://technet.Microsoft.com/en-us/library/aa337545.aspx } _ (reportez-vous à la partie de code inférieure intitulée crée un utilisateur de base de données)

  2. _ { http://social.msdn.Microsoft.com/Forums/sqlserver/en-US/959f9307-0494-4883-9d17-fad684705864/grant-select-permission-on-a-table?forum=sqldatabaseengine

30
Sree

L’octroi d’un accès par nom d’utilisateur n’est spécifique que pour cet utilisateur.

Toutefois, l’octroi d’accès par le biais du rôle s’applique à tous les utilisateurs appartenant à ce rôle. Le rôle permet d’attribuer des autorisations à un groupe d’utilisateurs.

2