Ich habe eine Datenbank von SQL Server 2012 nach Azure verschoben. Ich möchte den Benutzer nicht verwenden master
, daher habe ich einen Benutzer erstellt test
. Folgendes habe ich für die Datenbank XXX in Azure getan:
create user test from login test with default_schema=[dbo]
exec sp_addrolemember 'db_owner','test'
Ich habe überprüft, und die Datenbankobjekte, an denen ich interessiert bin, befinden sich alle im Schema dbo
. Die Tabelle Users
befindet sich im Schema dbo
.
Die Verbindungszeichenfolge in meinem Webprojekt hat test
als Login. Es wird die Fehlermeldung ausgegeben:
The SELECT permission was denied on the object 'Users', database 'XXX', schema 'dbo'
Was bedeutet die Fehlermeldung und was kann ich tun, um dem Benutzer den test
Zugriff auf die Datenbank XXX zu ermöglichen?
sql-server
azure-sql-database
Alte Knacker
quelle
quelle
Antworten:
Ich denke, das Problem ist, dass der Benutzer Berechtigungen verweigert . Dieser Fehler tritt auf, wenn der von Ihnen erstellte Benutzer nicht über die erforderlichen Berechtigungen verfügt, um auf Ihre Tabellen in der Datenbank zuzugreifen. Gewähren Sie dem Benutzer das Privileg, um das zu erhalten, was Sie möchten.
Gewähren Sie den benutzerspezifischen Berechtigungen wie SELECT, INSERT, UPDATE und DELETE für Tabellen in dieser Datenbank.
quelle
Properties
.Membership
.Stellen Sie sicher, dass Sie deaktivieren
db_denydatareader
db_denydatawriter
Dies sollte selbstverständlich sein, aber nur die Berechtigungen erteilen, die der Benutzer benötigt. Eine einfache, faule Lösung besteht darin, zu überprüfen,
db_owner
wie ich es getan habe, aber dies ist nicht die beste Sicherheitspraxis.quelle
deny
zuDie Syntax zum Erteilen der Auswahlberechtigung für eine bestimmte Tabelle:
USE YourDB; GRANT SELECT ON dbo.functionName TO UserName;
So erteilen Sie die Auswahlberechtigung für alle Tabellen in der Datenbank:
USE YourDB; GRANT SELECT TO UserName;
quelle
So konnte ich das Problem lösen, als ich es sah
quelle
db_denydatareade
oderdb_denydatawriter
Erteilen Sie Berechtigungen für diesen Benutzer
quelle
Überprüfen Sie den Speicherplatz Ihrer Datenbank. Dieser Fehler tritt auf, wenn der Speicherplatz im Vergleich zum Speicherplatz der Datenbank erhöht wird.
quelle
Mit SSMS habe ich sichergestellt, dass der Benutzer sowohl für die Datenbank als auch für den ReportServer über Verbindungsberechtigungen verfügt.
In der spezifischen Datenbank, die abgefragt wird, habe ich unter Eigenschaften deren Anmeldeinformationen zugeordnet und Datenleser und öffentliche Berechtigungen aktiviert. Wie andere bereits angegeben haben, habe ich auch sichergestellt, dass keine Denishread- / Denywrite-Felder ausgewählt wurden.
Ich wollte den Datenbankbesitz nicht aktivieren, wenn für ihre Berichte, da sie nur ausgewählte Berechtigungen benötigen.
quelle
Ich löse mein Problem damit. [WICHTIGER HINWEIS: Es ermöglicht eskalierte (erweiterte) Berechtigungen für das jeweilige Konto, möglicherweise mehr als für einzelne Szenarien erforderlich sind].
quelle
Möglicherweise ist Ihr Plesk-Panel oder ein anderes Panel-Abonnement abgelaufen. Bitte überprüfen Sie das Abonnement-Ende.
quelle