La permission SELECT a été refusée sur l'objet 'Users', database 'XXX', schema 'dbo'
j'ai déplacé une base de données de SQL Server 2012 à Azure. Je ne veux pas utiliser l'utilisateur master
, donc j'ai créé un utilisateur test
. C'est ce que j'ai fait pour la base de données XXX sur Azure:
create user test from login test with default_schema=[dbo]
exec sp_addrolemember 'db_owner','test'
j'ai vérifié, et les objets de base de données qui m'intéressent sont tous dans le schéma dbo
. La table Users
est dans le schéma dbo
.
La chaîne de connexion dans mon projet web test
connexion. Il produit le message d'erreur:
The SELECT permission was denied on the object 'Users', database 'XXX', schema 'dbo'
Qu'est-ce que le message d'erreur moyen et que puis-je faire pour laisser l'utilisateur test
accéder à la base de données XXX?
7 réponses
je pense que le problème est avec l'utilisateur refuser des privilèges. Cette erreur survient lorsque l'utilisateur que vous avez créé n'a pas les privilèges suffisants pour accéder à vos tables dans la base de données. Accordez le privilège de l'utilisateur afin d'obtenir ce que vous voulez.
GRANT les permissions spécifiques à l'utilisateur telles que SELECT, INSERT, UPDATE et DELETE sur les tables de cette base de données.
la syntaxe pour accorder la permission select est:
USE YourDB;
GRANT SELECT ON dbo.functionName TO UserName;
C'est ainsi que j'ai pu résoudre le problème lorsque je l'ai affronté
- Start SQL Management Studio.
- Développez le Nœud du Serveur (dans l 'Explorateur d'Objets').
- développez le noeud de bases de données et ensuite développez la base de données spécifique à laquelle vous essayez d'accéder en utilisant l'utilisateur spécifique.
- étendre le noeud utilisateurs sous le noeud de sécurité pour la base de données.
- clic Droit sur l'utilisateur spécifique et cliquez sur 'propriétés'. Que vous décrochassiez dialogue.
- assurez-vous que l'utilisateur est membre du groupe db_owner (veuillez lire les commentaires ci-dessous avant d'utiliser go this path) et d'autres modifications requises en utilisant la vue. (Je l'ai utilisé pour 2016. Pas sûr de savoir à quoi ressemble la boîte de dialogue spécifique dans une autre version et donc de ne pas être spécifique)
- Open SQL Management Studio
- Développez votre base de données
- étendre le dossier "Sécurité"
- Développer Les "Utilisateurs"
- clic Droit sur l'utilisateur (celui qui tente d'exécuter la requête)
assurez-vous de décocher
db_denydatareader
db_denydatawriter
cela devrait aller sans dire, mais seulement accorder les permissions ce que les besoins de l'utilisateur. Une solution facile et paresseuse est de vérifier db_owner
comme je l'ai, mais ce n'est pas la meilleure pratique de sécurité.
les permissions de subvention pour cet utilisateur sont nécessaires
Vérifiez l'espace de votre base de données.cette erreur vient quand l'espace augmenté comparent à l'espace donné à la base de données.
j'ai résolu mon problème en faisant ça. [NOTE IMPORTANTE: il permet d'augmenter les privilèges (élargis) au compte particulier, peut-être plus que ce qui est nécessaire pour chaque scénario].
- Aller à 'Explorateur D'Objets ' de SQL Management Studio.
- Développez Sécurité, puis Login.
- sélectionnez l'utilisateur avec lequel vous travaillez, puis cliquez à droite et sélectionnez Propriétés.
- Dans sélectionner une Page, passez à Rôles De Serveur
- Clic sur administrateur et enregistrer.